2007年11月27日 星期二

Poring Linux Kernel 2.6 for DIMMPC 520i (Part 1)

最近終於找到時間來Porting板子囉!!

測試完IDE介面,發現可以接硬碟和光碟機...


於是很有趣的將之前收到的ubuntu 7.10放進去跑跑看,結果:

天啊,有畫面也可以跑耶!!但...

kernel還是跑不起來,也只好乖乖porting了...><"

2007年11月18日 星期日

小筆電裝Ubuntu 7.10

今天終於跟裝了兩年多的gentoo說byebye了,
一直都想要換,畢竟我的小筆電速度不夠快,
總不能每裝一套package就一直compiler...吧!!

也剛好昨天回家,
收到數天前到[ShipIt]所申請的光碟片,
超cool的,還有貼紙...

安裝上真的比gentoo方便太多,
在加上用[lazybuntu]來安裝想要的軟體,真的不到一小時就全部裝完囉...

2007年11月14日 星期三

Easy to build toolchain, cross-ng

因DIMM-PC只有32 MByte Flash Disk,
所以用glibc會太大,
因此改用jserv前輩所建議crosstool next generation[cross-ng],
這個crosstool可以編glibc和uclibc,
且介面跟編kernel很類似喔!!
真的方便超多的...^^

1. install

$ wget -c http://ymorin.is-a-geek.org/download/crosstool-ng/
crosstool-ng-0.3.2.tar.bz2
$ tar -jxvf crosstool-ng-0.3.2.tar.bz2
$ cd crosstool-ng-0.3.2
$ ./configure --prefix=/opt/cross-ng
$ make
# make install

2. using cross-ng

$ export PATH="${PATH}:/opt/cross-ng/bin"
$ mkdir toolchain-dev && cd ./toolchain-dev
$ ct-ng menuconfig

需要提供uclibc的設定檔路徑

$ ct-ng build
...
[INFO ] ===============================
[INFO ] Installing C library headers
[INFO ] Installing C library headers: done in 27.63s
[INFO ] ===============================
[INFO ] Core C compiler, pass 2
[INFO ] =============================
[INFO ] Installing static core C compiler
[INFO ] Installing static core C compiler: done in 316.46s
[INFO ] Core C compiler, pass 2: done in 316.50s
[INFO ] ===============================
[INFO ] Installing C library
[INFO ] Installing C library: done in 124.55s
[INFO ] ===============================
[INFO ] Installing final compiler
[INFO ] Installing final compiler: done in 737.85s
[INFO ] ===============================
[INFO ] Installing cross-gdb
[INFO ] Installing cross-gdb: done in 316.19s
[INFO ] ===============================
[INFO ] Installing gdbserver
[INFO ] Installing gdbserver: done in 11.50s
[INFO ] Build completed at 20071114.012858
[INFO ] (elapsed: 28:28.51)

成功囉!!
toolchain的路徑在$HOME/i386-DIMMPC-linux-uclibc

2007年11月11日 星期日

ToolChain for DIMM-PC

由於x86的toolchain建立的文件相當少,
於是使用[crosstool]來建立toolchain可說是相當方便...
[更新]
$ svn co http://crosstool.googlecode.com/svn/trunk/src crosstool
$ cd crosstool
$ cp demo-i686.sh demo-i386.sh
$ vi demo-i386.sh
將eval `cat i686.dat gcc-4.1.0-glibc-2.3.6-tls.dat` sh all.sh --notest
修改成#eval `cat i686.dat gcc-4.1.0-glibc-2.3.6-tls.dat` sh all.sh --notest
將eval `cat i686.dat gcc-4.1.0-glibc-2.3.6.dat` sh all.sh --notest
修改成#eval `cat i386.dat gcc-4.1.0-glibc-2.3.6.dat` sh all.sh --notest

$ vi i386.dat
TARGET=i486-dimmpc-linux-gnu
TARGET_CFLAGS="-O"
$ sudo mkdir /opt/crosstool
$ sudo chown $USER /opt/crosstool
$ sh demo-i386.sh
...
Cross-toolchain build complete. Result in /opt/crosstool/gcc-4.1.0-glibc-2.3.6/i486-dimmpc-linux-gnu.
+ exit 0
+ cd /home/shulong/crosstool
+ sh testhello.sh
+ cd /opt/crosstool/gcc-4.1.0-glibc-2.3.6/i486-dimmpc-linux-gnu
+ test '!' -d tmp
+ mkdir tmp
+ cd tmp
+ test x '!=' x
+ cat
...
+ echo testhello: C compiler can in fact build a trivial program.
testhello: C compiler can in fact build a trivial program.
+ test '' = 1
+ test '' = 1
+ test '' = 1
+ test 1 = ''
+ echo Done.
Done.

看到這個msg就代表成功啦!!

toolchain的路徑在:
/opt/crosstool/gcc-4.1.0-glibc-2.3.6/i486-dimmpc-linux-gnu/

感謝jserv大提供的方向...

2007年10月5日 星期五

COSCUP 2007

傳統商業軟體的開發者(coders)和使用者(users)很少交流,是大家都接受的事實。你的軟體用起來有問題?請打技術支援電話,由客服人員為你服務,他或許已經儘其所能,但未必能解決你的問題。如果問題是軟體的臭蟲,你只好痴痴地等待不知幾年後才開賣的下一版。而你當初之所以選用A軟體而不是B軟體,常常是聽信銷售員(sales)的一面之詞或同儕的推薦。在這個行為模式下,users 面對的是銷售員和客服,coders 面對的還是銷售員和客服,users 遇到的問題要間接地才能反應到 coders 手上,中間還可能會被過濾掉。

Open source 這個在 1998 年出現的名詞,大家早已耳熟能詳。這種在網路上已經進行二三十年的軟體開發模式之所以能成功,有許多原因,其中一個極為關鍵的因素,就是 coder-user 的直接接觸。無屏障的交流形成了問題的快速回報和修補機制,而當這個機制被網路效應放大到極限時,Linus 定律就出現了:《臭蟲難逃眾人法眼》(With enough eyeballs, all bugs are shallow),軟體品質因此顯著提昇。在 open source 的模式中,coders 和 users 中間的人不再是銷售員或客服,而是讓軟體更容易被 users 接受的推廣者(promoters),他們打包套件讓軟體更好裝、寫說明文件讓軟體更易學、辦推廣活動讓軟體被更多人接觸到、在網路上回答問題解決使用者的疑惑,而且不會把 coders 藏在背後產生資訊的不對稱。

Coders、users 和 promoters 是讓 open source 軟體發光發熱的支柱,所以我們的 open source 研討會是專為這三種人舉辦的。你可以是 A 軟體的 coder、B 軟體的 promoter、C 軟體的 user。不論你是已經踏入 open source 領域,還是一直站在門口不知如何入門,歡迎你來參加 COSCUP - Conference for Open Source Coders, Users and Promoters!

今年的 COSCUP 最大的改變,是由各台灣本地社群共同舉辦,也希望能透過這樣的合作,增加社群同好的參與度,正如 COSCUP 的精神,在這個研討會當中,你同時是與會者,推廣者,也參與了大會的運作。

* 時間:2007 年 11 月 3 日(六)- 11 月 4 日(日)
* 地點:台北市和平東路 2 段 106 號 科技大樓 二樓
* 誰應該參加:寫 open source 軟體的開發者、熱衷 open source 軟體的推廣者、熟悉 open source 軟體的使用者、想瞭解 open source 軟體的新手。

網址:http://coscup.org/2007/

2007年9月21日 星期五

Linus says: “C++ is a horrible language”

C++ is a horrible language.
It’s made more horrible by the fact that a lot of substandard programmers use it, to the point where it’s much much easier to generate total and utter crap with it.
Quite frankly, even if the choice of C were to do nothing but keep the C++ programmers out, that in itself would be a huge reason to use C.

– Linus

2007年8月3日 星期五

Taiwan Linux Forum

一年一度的台灣Linux論壇又來了,
這次我的感覺是辦的比去年差,
雖然請了幾位國外Open Source很厲害的講者,
但講都東西不是太淺...
不然就是沒什麼技術性的東西...
感覺沒學到什麼東西...
只有一個心得,英文聽力要加油...><"
...
這次參與的議程有:

8/1, 早上
Overview of the Linux Market Place and the Technical Development Community, Jim Zemlin, Linux Foundation

心得:
大部份的英文都聽的懂,有一些內容很不錯,只不過是有點介紹性的感覺...

8/1, 下午
Real Time Linux, Linux Kernel Device Drivers and Embedded Linux, Theodore Y. "Ted" Tso, Linux Kernel Developer

心得:
因為下午2:00是我想睡的時候,不過我還是努力的聽(中途不小心...),不過好像只是很簡單的介紹,不夠深入...非常可惜,加上英文講的太快(腔調有點怪怪的)...,聽完只有一個想法,回去開始加強英文聽力><"
...
Open Solaris驅動程式開發, 李宗虞

心得:
講的內容很好,只不過是因為是北京工程師的關係,口語上出現一些大陸用法...><"
什麼源碼、硬盤...
...
印表機在Linux系統中之相容性探討, 林靖翔

8/2, 早上
避免GPL地雷:A Check List, 葉平博士
來自由/開放源碼的警告信, 葛冬梅經理


心得:
講的內容很好,讓人很容易了解GPL,
只不過真的有一些情況,企業要用時真的要小心

8/2, 下午
使用Fedora 7 做OLPC Live-cd, Pake

心得:
很技術性,講的非常好,很想動手玩玩看...
很想弄一台百元電腦...只不過要175元美金><"
...
802.11無線網路封包監測及分析軟體之研製
...
應用感測技術之智慧型環境感知緊急救護系統之設計與實作
...
運用多階層網格技術於2D和3D外形中的呈現
...
自由軟體作業系統核心客製化工具組之研製

心得:
雖然說只是簡略說明做了那些東西,但我可以了解教授所說的...很滿有趣的
...
無線感測網路技術應用於旱災預警與監測通報系統之設計與實作(II)
..
支援跨語言語料收集之維基百科外覆程式
...
小心!間諜就在你身邊! 如何增加LAMP安全-現場Demo, Outian

心得:
超厲害的HACKER DEMO,看的很Shock,
以後自己管SERVER真的要小心...
...
粗體是表示我自己覺得不錯的議程...

另外,大部份的簡報都可以抓的到了,
在[自由軟體入口網站首頁]左邊的部份...

總之,以後可能也不會想去了吧...
不但是太遠了...而且沒有比今年的OSDC精彩~~

2007年7月19日 星期四

Robot need a RTOS,but Linux maybe Realtime?

Reference:
Jserv前輩在OSDC.tw所發表的RT nanokernel for Embedded Linux議題中

Is Linux Realtime?
過去的答案:
No,其原因:
Monolithic Kernel、Non Preemptible、Resource Lock、Priority Scheduling

現在(Kernel 2.6)的答案:Maybe Yes
Old: No Kernel Preemption
Execution in kernel mode interrupted only by explicit、yields, sleeps, and IRQ’s

New: Kernel May Be Preempted
New process may be swapped in after servicing an interrupt

但「May Be」,問題點:
相較於典型RTOS來說,還是太沈重
不具備Hard-Realtime能力


但Robot need a RTOS
所以...
我的目標將先往RTOS的方向走,可能要建立一個Realtime Linux System...
Linux如何Realtime?
這也是我最近要達成的方向...

2007年7月16日 星期一

Kontron DIMM-PC

Kontron DIMM-PC/520I
586 Embedded Controller, Upto 32MB DRAM, 32MB Flash With Optional Ethernet or USB

series: 08012-3232-13-0
DIMM-PC/520-I CPU module with 32MB DRAM and 32MB flash

Kontron DIMM-PC/COMBO2 & /VGA2
LCD/VGA, Ethernet and Serial on one DIMM I/O Module, Full PC functionality at the size of a business card

series: 08014-0000-01-0
DIMM-PC/COMBO2 VGA, Ethernet and two serial interfaces

Kontron DIMM-PC/KIT-3
Starter Kit for use with the DIMM-PC range, Fast assembly and quick operation

series: 08005-0000-00-4
DIMM-PC/ADA3 Evaluation-board for DIMM-PC

這就是我們實驗室嵌入式板子的資料~~

Reference:
http://www.dpie.com/dimmpc/dimmpc520.html
http://www.dpie.com/dimmpc/dimmcombo.html
http://www.dpie.com/dimmpc/dimmstarterkit.html

2007年7月14日 星期六

Porting Kernel 2.6 for DIMM-PC

純粹好玩來Porting Kernel 2.6 for DIMM-PC
大約的步驟...(準備開始)
...
Step1: Collecting about Hardware Information

CPU: AMD™ Elan SC520 133MHz

Memory: 32768k(32 MByte) DRAM, 32 MByte IDE compatible Flash Disk

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hda: SanDisk SDC1-32, CFA DISK drive

VGA Board: Topro TP6508IQ video controller
(VGA Graphics for CRT and flat displays)

Ethernet: Crystal LAN™ CS8900 Ethernet Controller(cs8900 rev J found at 0x300 [Cirrus EEPROM])

ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
...
Step2: Allocation

Bootloader: lilo or u-Boot
(Reference jserv's blog [探索 Linux bootloader 的佳作])
Linux Kernel: 2.6.20 (or newest)
(Realtime Embedded Linux, RTOS)

Root File System: BusyBox + uClibc(or eglibc) + initscripts...
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
TERM=vt100
SHELL=/bin/ash
...
Step3: Create Image file
...
Step4: Emulate, Tesing
...
Testing. If not ok, back to Step 2
...
Step5: burn to DIMM-PC Flash ROM

2007年7月10日 星期二

Where Can I get Memory Image context?

明明ml30j53.img的檔案系統就是minix~~~
...
mitelinux:/# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / minix ro 0 0
none /proc proc rw 0 0
none /dev/pts devpts rw 0 0
/dev/ram /mnt/ram minix rw 0 0

mitelinux:/# cat /etc/fstab
/dev/hda1 / minix defaults 1 1
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0

mitelinux:/# df -h
Filesystem Size Used Available Use% Mounted on
/dev/hda1 30.2M 10.8M 19.3M 36% //dev/ram 502.0k 40.0k 462.0k 8% /mnt/ram


但我怎麼mount就是沒辦法~~~
Where Can I get Memory Image context?
#mount -t minix ml30j53.img rootfs/ -o loop
功力還不夠啊~~~誰能幫幫我~~思考中~~

[更新]
錯錯不是minix,我還在研究到底是什麼??
csl@csl-desktop:~$ file ml30j53.img
ml30j53.img: x86 boot sector, LInux i386 boot LOader; partition 1: ID=0x83, starthead 1, startsector 63, 62433 sectors, extended partition table (last)\011
看起來像是在Memory Image中的大合體??好像是把所有東西放在一起??
但要放在一起,難道Memory Image沒有filesystem嗎?
...
原來
csl@csl-desktop:~$ qemu-img info ml30j53.img
image: ml30j53.img
file format: raw
virtual size: 31M (32047104 bytes)
disk size: 31M

它是一個raw file format,
/*
raw
Raw disk image format (default). This format has the advantage of being simple and easily exportable to all other emulators. If your file system supports holes (for example in ext2 or ext3 on Linux or NTFS on Windows), then only the written sectors will reserve space. Use qemu-img info to know the real size used by the image or ls -ls on Unix/Linux.
*/
難怪怎麼mount都沒辦法...
還要再努力才行啊~~~
[/更新]

2007年7月6日 星期五

Oh~My God

oh~My God~~I get console in DIMM-PC/520-I
弄了半天~~原來那麼容易取得~~
要不是把VGA接上Screen,
看到DIMM-PC竟然有BIOS的管理介面(跟電腦差不多),
看到DIMM-PC竟然有跟電腦那麼像,
還不用風扇(超強的),
難怪BOSS說這個東東會比ARM強,終於可以體會出來了...
真是說不出來的高興~~

Making directories: [ OK ]
Setting system clock: [ OK ]
MAC address of eth0: 00:e0:4b:04:01:e7
tcpdump: listening on eth0
Configuring eth0: [ OK ]
Configuring lo: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
Starting xinetd: [ OK ]
Generating main crontab: [ OK ]
Starting crond: [ OK ]
Starting sshd: [ OK ]

Please press Enter to activate this console.

miteLINUX release 3.0 (Woody)
mitelinux login: root
Password:


BusyBox v1.00-pre7 (2004.02.04-18:02+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

mitelinux:/root#


接下來的工作,就是~~~
改MiteLinux裡面,會有時無法進系統的情況,
還有一些我想玩玩的東西,像kernel變2.6啦...><"
努力吧~~
目標是七月底把這塊板子中的Linux,修改成我要做的東東~

2007年7月4日 星期三

miteLINUX for DIMM-PC



我們的實驗室買了一塊開發板(Kontron DIMM-PC/520-I + JUMPtec),老實說我從來沒聽過這塊板子,不過聽老闆說這塊開發板比arm還強,以後可以拿來用在機器人的核心系統。


規格:
* AMD ELAN SC520 CPU with 133MHz
* 32 Mbyte DRAM and
* 32 MB IDE Flashdisk, IDE Interface
* Floppy, Real Time Clock,
* EEPROM for CMOS-Data backup 5V single voltage,

今天我要將Linux放入,所以要利用JRC+RS232跳線來將img檔寫入flash中,結果很順利就成功。但目前有個問題是拿不到console,今天真的累了~明天在想辦法好了^^"

補充:
http://www.mite.cz/dimmpc/dimmpctable-en.html
http://www.mite.cz/softlinux-en/softlinux-en.html
http://www.amd.com/epd/linux/index.html
目前還沒拿到console,加油中~~

2007年7月2日 星期一

開始寫了~~~

快要進研究所了~~
想加強一些基本觀念~~~
也打算利用時間,學一些Kenrel東西~~
好多東西要學喔~~~
明天開始吧~~加油啦