Life, Computers, Travelog, Blogging & IgA Nephropathy…
ในช่วงที่ผมกำลังรอคอมไพล์โปรแกรม Kaffe JVM สำหรับใช้งานบน SBC TS-7200 ซึ่งค่อนข้างช้าเอาการเลย อันเนื่องมาจากตัวนี้ผมพยายามคอมไพล์ผ่านทาง crosstool บนเครื่องพีซีทั่วไป ซึ่งก็ไม่เป็นผล เลยเสี่ยงดวงเอามาคอมไพล์บนตัว SBC TS-7200 เองเลย และค่อนข้างจะนานมาก ถ้าสำเร็จยังไงจะเอามาบันทึกไว้เตือนความจำอีกที..
สองอาทิตย์ก่อน “ก้อย” เพื่อนที่ทำงานและบ้านอยู่ทางเดียวกันส่งข้อความผ่านmsnมาหา “เฮ้ยแก ช่วงนี้ตามรับตามส่งใครอยู่หรือเปล่า” เอาล่ะสิว่ะเป็นขี้ปากชาวบ้านเขาอีกแล้ว นี่กูตามรับตามส่งใคร แล้วมันผิดป่าวฟ่ะเนี่ย หรือมีใครแอบไปเห็นมาแล้วเอามาซุบซิบ “ก็มีบ้าง แต่ไม่ทุกวันหรอก… มีอะไรหรอ” ผมตอบกลับไปพร้อมรอประโยคต่อไปจากก้อย “หรอว่าจะชวนมานั่งรถกลับบ้านเป็นเพื่อน… ถ้าไปรับไปส่งใครอยู่ก็ไม่เป็นไร” อ้ออย่างนี้นี่เองนึกว่าตัวเองกลายไปเป็นขี้ปากชาวบ้านเข้าอีกแล้ว “เออได้นะ เพราะก็ไม่ได้ถึงกับตามรับตามส่ง วันไหนเลิกงานเวลาไล่เลี่ยกันถึงได้กลับด้วยกัน ได้เดี๋ยวไปนั่งเป็นพื่อน” ผมเข้าใจดีตอนหัดขับรถใหม่ๆ ก็กลัวๆอยากมีเพื่อนมานั่งเป็นเพื่อนอยู่เหมือนกัน แต่ก็ไม่มีใคร (จนทุกวันนี้) “งั้นขออาทิตย์หนึ่งนะ” ผมตอบโอเค และแล้ว การผจญภัยบนท้องถนนของผมก็เริ่มขึ้น
28 มิถุนายน 2550
หลังจากที่ตกลงกันว่าก้อยจะต้องมารับผมที่ป้ายรถเมล์ตรงทางเข้าวัดสีสุก แต่ก้อยโทรมาแต่เช้าบอกให้ผมนั่งรถเมล์ย้อนไปอีกเพื่อไปดักก้อยแถวๆหน้าบ้านก้อย ตรงสำนักงานเขตบางขุนเทียน ผมนั่งรถเมล์แป็บเดียวก็ถึงที่หมาย เดินข้ามสะพานลอย มองดูรถด้านขาเข้าของ ถนนพระราม2 แล้วอดเหนื่อยใจไม่ได้ เพราะรถเต็มพื้นที่ถนนไปหมด ผมโทรหาก้อยขณะอยู่บนสะพานให้ออกมาเลย ไม่นานก้อยก็มาถึง พร้อม new vios ป้ายแดง ผมบอกก้อยไปก่อนหน้านี้ว่าผมไม่ค่อยถูกกับกลิ่นรถใหม่ หลังรถออกตัว กลิ่นรถใหม่ใหลเวียนเข้าสู่ร่างกายของผม ผ่านทางรูจมูก ก่อเกิดอาการอยากอ้วกเพิ่มขึ้นตามเวลาที่ผ่านไป กอปรกับต้องคอยจิกตีนทุกจังหวะประหนึ่งมีเบรกอยู่ตรงตีน ในเวลาที่ new vios ประชิดตูดรถคันหน้า เวลาผ่านไปเท่าไรไม่รู้ ขณะกำลังจะขึ้นทางด่วนก่อนถึงหน้าด่านเก็บเงิน พระราม2 ผมขอเปิดกระจกเจ้า new vios ด้านที่ผมนั่งหน่อยจะอ้วกแล้ว โชคดีที่ไม่อ๊วกออกมา และถ้าอ้วกออกมาก็ยังถือว่าดีอยู่เพราะยังไม่ได้กินอะไรมา - -”
วันนี้เป็นการเดินทางที่ค่อนข้างนานกว่าปกติแม้จะเป็นถนนเส้นเดียวกัน ผมจะคอยเล่าเรื่องต่างๆบนท้องถนนให้ก้อยฟัง โดยถือว่ามีประสพการณ์มาก่อนพอสมควร ก้อยถามว่ากลัวไหม อืม.. ก็แหงล่ะ อย่างว่าทุกคนเกิดมาไม่ได้ถือพวงมาลัยรถยนต์ออกมาเลยนี่ (ถึงถือมาตอนคลอดจริงก็ใช่ว่ามันจะขับรถเป็นเลยนิ) ก่อนถึงออฟฟิศพบว่าก้อยขับกินซ้ายค่อนข้างมาก ก็บอกก้อยไป เมื่อถึงออฟฟิศ วันนี้เป็นวันดี(มั้ง) มีที่จอดรถ และนี่เป็นสิ่งที่ยากที่สุดของคนหัดขับรถใหม่ๆ (ผมก็ได้หลายแผลเหมือนกัน) ตอนนี้ก็เช่นกัน ที่จอดรถเหลือที่เดียวแคบๆ ต้องโยกกันหลายรอบ กว่าจะเข้าได้ โดยมีรปภ. มาคอยให้กำลังใจ ซ้ายหน่อย ขวานิด หน้าอีกนิด หลังอีกหน่อย ในที่สุดทริปของเช้านี้ก็จบลง ผมจุกที่ท้องนิดหน่อย (เครียดลงกระเพาะ)
(more…)
The products in this section are designed for embedded systems, usually with very
limited resources (in terms of both memory and CPU power).
They sometimes are integrated with an operating system.
Sun has come up with PersonalJava and
EmbeddedJava - some of the products
below are compliant with these application environments.
The Charis pVM (pico Virtual Machine) is available for Win9x and NT, Linux, ARM7,
Hitachi’s H8-300H and Patriot Scientific’s PSC1000.
It is primarily meant for micro-controller based embedded systems (the ARM7
VM is stored in 32K of ROM).
A demo version can be downloaded.
Seems to be commercial.
The Ewe programming framework is meant for environments with restricted resources.
It includes a virtual machine which is not fully Java-compliant as well
as a class library of its own.
Thus, a Java VM can execute any Ewe program, but the Ewe runtime environment
cannot execute any Java program.
Ewe is an extension of Waba.
http://www.180sw.com/HTML/geneva.html
Geneva is a Java Virtual Machine running on the
ORIGIN architecture,
supporting all features of a normal JVM except for the graphics part of
the runtime libraries.
It is targetted at embedded systems (smartcards, handhelds, mobile phones etc.),
can run on 8-bit-systems, seems to work with 80×86 and SPARC hardware right now.
http://www.embedded.oti.com/download/platform.html
These are runtime environments for embedded systems:
More information can be found at
http://www-4.ibm.com/software/ad/embedded/.
ช่วงนี้วุ่นวายอยู่กับ Single Board Computer หรือ SBC มาพักใหญ่จนเอา Debian ไปยัดใส่ให้มันทำงานได้แล้ว SBC ที่ผมเอามาเล่นคือรุ่น TS-7200 ที่เคยเขียนถึง การใช้งาน debian บน SBC ที่มี ARM9 เป็น CPU ก็ถือว่าทำได้ดีในงานที่ต้องการขนาดระบบที่เล็ก แต่ผมดันลืมทำ swap ให้มันซะนี่
การทำ swap ส่วนใหญ่ผมจะเข้าใจว่าต้องทำโดยการแบ่งพาติชั่นเป็นหลัก และครั้งนี้ลืมไปเลยว่าต้องทำ swap ด้วย จนเอามาใช้งานก็ติดๆขัดๆเรื่องของ memory บ่อยอยู่เหมือนกัน ทีแรกว่าจะ fdisk ใหม่แต่ก็กลัวพลาด (เป็นบ่อย) เลยหาวีธีเซฟๆหน่อย
เลยได้เป็นการทำ swap file ไม่ต้องทำเป็น swap patition เริ่มการทำเลย
1. ก่อนอื่นต้องสร้าง block ขึ้นมาใน harddisk หรือ compact flash ขนาดก็ดูจาก memory หลักคูณด้วยสอง SBC ผมมีRAM ขนาด 32 MB ผมก็สร้าง swap file ขนาด 64 MB ด้วยคำสั่ง dd ดังนี้
# dd if=/dev/zero of=/swapfile bs=1024 count=64k # mkswap /swap Setting up swapspace version 1, size = 67104 kB no label, UUID=7cde6930-7f70-44ac-8f96-d847f20a7b0b
2. เริ่มการใช้งาน swap file ที่สร้างขึ้น
# swapon /swap Adding Swap: 65528k swap-space (priority -1)
3. ตรวจดูการใช้งานของ swap file ที่สร้างขึ้น
# cat /proc/swaps Filename Type Size Used Priority /swap file 65528 0 -1
หรือใช้คำสั่ง top
top - 22:27:45 up 1 day, 8:01, 3 users, load average: 0.00, 0.00, 0.15 Tasks: 24 total, 1 running, 22 sleeping, 1 stopped, 0 zombie Cpu(s): 0.7% user, 1.0% system, 0.0% nice, 98.4% idle Mem: 28572k total, 27632k used, 940k free, 348k buffers Swap: 65528k total, 0k used, 65528k free, 19068k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 23959 root 17 0 1048 1048 844 R 1.6 3.7 0:00.24 top 1 root 8 0 144 144 92 S 0.0 0.5 0:01.40 init 2 root 9 0 0 0 0 S 0.0 0.0 0:00.08 keventd 3 root 19 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd_CPU0 4 root 9 0 0 0 0 S 0.0 0.0 1:15.98 kswapd 5 root 9 0 0 0 0 S 0.0 0.0 0:00.00 bdflush 6 root 9 0 0 0 0 S 0.0 0.0 0:00.23 kupdated 7 root 9 0 0 0 0 S 0.0 0.0 0:00.00 mtdblockd 122 root 9 0 0 0 0 S 0.0 0.0 0:00.00 khubd 254 daemon 9 0 124 124 48 S 0.0 0.4 0:00.02 portmap 338 root 9 0 112 112 52 S 0.0 0.4 0:00.05 inetd 346 root 8 0 324 320 204 S 0.0 1.1 0:00.06 sshd 359 root 9 0 140 140 52 S 0.0 0.5 0:00.05 rpc.statd 370 root 8 0 332 332 168 S 0.0 1.2 0:00.47 cron 426 root 9 0 300 300 52 S 0.0 1.0 0:00.11 login 427 root 9 0 868 868 584 S 0.0 3.0 0:00.15 bash 575 root 9 0 632 624 340 S 0.0 2.2 0:15.45 sshd 576 root 9 0 296 296 52 S 0.0 1.0 0:00.10 login 577 root 8 0 816 816 504 S 0.0 2.9 0:01.59 bash 903 root 9 0 628 620 340 S 0.0 2.2 0:01.40 sshd 925 root 9 0 296 296 52 S 0.0 1.0 0:00.09 login 926 root 9 0 1232 1232 672 S 0.0 4.3 0:00.27 bash 14986 root 9 0 1560 1560 52 T 0.0 5.5 0:01.70 zip 30177 root 9 0 260 260 184 S 0.0 0.9 0:00.22 syslogd
ถ้าได้อย่างนี้แล้วก็คือใช้งานได้แล้ว
4. สุดท้ายเอาไปเพิ่มไว้ไนไฟล์ fstab เพื่อให้ใช้งานได้เองหลังจากบูทเครื่องทุกครั้ง
proc /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 /swap none swap sw 0 0 /dev/sdcard0/disc0/part3 / ext2 defaults,noatime,sync 1 1