Submitted by admin on Wed, 01/13/2010 - 21:03

บทความนี้จะแสดงการสร้าง Linux Ångström Distribution ด้วย Openembedded ซึ่ง Ångström Distribution เป็นระบบที่ออกแบบมาสำหรับงานด้าน Embedded Linux โดยเฉพาะ ส่วน Openembedded เป็นระบบช่วยสร้าง Linux Distribution ทั้งระบบ นอกจากจะใช้สร้าง Ångström Distribution แล้ว ยังสามารถใช้สร้าง Distribution อื่นๆอีกมากมาย
ตัวอย่าง Linux Distribution ที่สามารถสร้างได้โดย Openembedded
altboot-console-image.bb mokogateway-image.bb |
1. เตรียมพร้อมระบบสำหรับการใช้งาน Openembedded ซึ่งจะแตกต่างกันไปตาม Linux Distribution ที่ใช้ ในกรณีนี้เราจะใช้ Ubuntu9.10 สำหรับ Distribution อื่นๆให้ทำตามลิงค์นี้ http://wiki.openembedded.net/index.php/OEandYourDistro
ก่อนอื่นให้ติดตั้งโปรแกรมที่จำเป็นสำหรับการใช้งาน
$ sudo apt-get install sed wget cvs subversion git-core coreutils unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ |
ตรวจสอบว่า /bin/sh link ไปหา dash หรือเปล่า ถ้าใช่ให้ใช้คำสั่ง "sudo dpkg-reconfigure dash" แล้วเลือก No
$ ls -l /bin/sh |
2. เตรียม Directory สำหรับการสร้าง
$ mkdir -p ~/stuff/build/conf |
3. ติดตั้งโปรแกรม bitbake ซึ่งเป็นโปรแกรมสำหรับการดึงสูตร (recipes) การสร้างมาตีความเพื่อสร้าง Distribution ต่างๆ ซึ่ง bitbake จะติดตั้งไปยัง directory ~/stuff/bitbake
$ wget http://download.berlios.de/bitbake/bitbake-1.8.18.tar.gz |
4. ใช้ git เพื่อดึงระบบ Openembedded สำหรับ Mini2440
|
|
มาถึงจุดนี้ภายใต้ Directory ~/stuff จะประกอบไปด้วย Directory หลักๆ สามตัวคือ
- bitbake - บรรจุโปรแกรมสร้างระบบ
- mini2440 - ระบบ Openembedded ที่เก็บสูตรในการสร้าง Linux Distribution ต่างๆสำหรับ mini2440
- build - Working Directory ที่ใช้ในการสร้าง Distriubution
5. ขั้นตอนต่อไปเป็นการเตรียม Working Directory
- สมมติให้ Home Directory ของผู้ใช้คือ /home/mini2440
- สร้างไฟล์
/home/mini2440/stuff/build/conf/local.confโดยมีข้อมูลดังนี้
|
|
- รายละเอียดเพิ่มเติมของoptionต่างๆสำหรับ local.conf สามารถดูได้จากไฟล์
~/stuff/mini2440/mini2440_local_conf_example.confและ~/stuff/mini2440/conf/local.conf.sample รายละเอียดเพิ่มเติมของ MACHINE ที่ Openembedded รองรับดูได้จาก ~/stuff/mini2440/conf/machineรายละเอียดเพิ่มเติมของ DISTRO ที่ Openembedded รองรับดูได้จาก ~/stuff/mini2440/conf/distro
- สร้างไฟล์
/home/mini2440/stuff/build/profile.shโดยมีข้อมูลดังนี้
|
|
- สร้าง Directory สำหรับเก็บ Source code ที่ download มาระหว่างสร้างระบบ
|
|
6. มาถึงจุดนี้ เราก็พร้อมที่จะทำการสร้าง Ångström Distribution แล้วครับโดยเราจะทำการสร้างระบบที่มีขนาดเล็กที่สุดคือ console-image ซึ่งเป็นระบบเล็กที่ไม่มี GUI
การรัน bitbake ให้ทำการรันภายใต้ directory ~/stuff/build
|
|
หมายเหตุ
Ubuntu9.1 ต้องทำการแก้ไขไฟล์ /etc/sysctl.conf เพื่อเพิ่มบรรทัดข้างล่างนี้ แล้วรีบูทก่อนทำการรัน bitbake
|
|
bitbake จะทำการมองหาสูตรการสร้าง console-image จากDirectory ~/stuff/mini2440/recipes/images แล้วทำการดึง Source Code ต่างๆที่เกี่ยวข้องมาเก็บไว้ที่ directory ที่กำหนดไว้ที่ DL_DIR หลังจากนั้นจะทำการ Compile สร้างระบบทั้งระบบให้กับเราโดยอัตโนมัติ ในการcompileระบบครั้งแรกค่อนข้างใช้เวลานานมาก เพราะวิธีการสร้างระบบของ Openembedded จะ Compile จาก Source code แต่จะเร็วขึ้นในรอบหลังๆ
หลังจากใช้เวลายาวนานเราก็จะได้ระบบ Embeded Linux Ångström ทั้งระบบภายใต้ Directory ~/stuff/build/tmp/deploy/glibc/images/mini2440 ซึ่งประกอบด้วยไฟล์ดังนี้
|
|
เราจะได้ไฟล์ทุกตัวที่สามารถนำไปสร้างระบบEmbedded Linux Ångström ทั้งระบบ หลักๆก็คือ
1. บูทโหลดเดอร์ u-boot-mini2440.bin ซึ่งลิงค์ไปหาไฟล์ u-boot-mini2440-git-r30.bin
2. ลินุกซ์เคอร์แนล uImage-mini2440.bin ซึ่งลิงค์ไปหาไฟล์ uImage-2.6.32+git-r1-mini2440.bin
3. ไฟล์ซิสเต็มในรูปแบบต่างๆ ถ้านำไปเขียนลง nand flash ก็ใช้ console-image-mini2440.jffs2 ถ้านำไปเขียนลง sd card ก็ใช้ console-image-mini2440.tar.gz เป็นต้น
อ้างอิง
http://linuxtogo.org/gowiki/AngstromManual
http://wiki.openembedded.net/index.php/Getting_started
http://repo.or.cz/w/openembedded/mini2440.git
www.linuxtogo.org/gowiki/OeDeviceList