顯示具有 Embedded Linux 標籤的文章。 顯示所有文章
顯示具有 Embedded Linux 標籤的文章。 顯示所有文章

embedded linux qt 支援 jpeg (static)

[尚未編譯]
1.準備QT source
2.準備libjpeg (http://www.ijg.org)
3.編譯libjpeg
4.configure QT 將 -qt-libjpeg 、 -I (include)和 -L(library)額外設定好
5.make install

[編譯完成]
1.尋找你install資料夾下plugins/imageformats是否有libqjpeg.so
2.將imageformats整個複製到embedded下的/lib/plugins
3.將libjpeg的so檔複製到複製到embedded下的/lib
4.設定環境變數 export QT_PLUGIN_PATH=/lib
5.將成試放入執行即可

[偵錯]
1.設定環境變數export QT_DEBUG_PLUGINS=1
2.執行程式
3.執行到jpeg的地方就會顯示有沒有載入成功

Uboot設定

1.在開機的時候先進入uboot
在此畫面要快速按下任何鍵就可以進入uboot模式

2.接下來就是開始設定uboot
uboot有很多參數必須被設定如下
bootcmd    - see CONFIG_BOOTCOMMAND
bootargs    - Boot arguments when booting an RTOS image
ipaddr    - IP address; needed for tftpboot command
serverip    - TFTP server IP address; needed for tftpboot command
ethact    - When CONFIG_NET_MULTI is enabled controls which interface is currently active.
gatewayip    - IP address of the Gateway (Router) to use
netmask    - Subnet Mask
ethaddr    - Ethernet address
那要如何設定
打set的指令加上你要設定的參數名稱和參數(有些舊版本要打setenv)
參數名稱除了上面的之外
也可以自己命名其他的名子
例如要設定這台機器的ip
set ipaddr 192.168.0.99
那設定完要如何看??
就打print(有些舊版本要打printenv)
print
但是這些設定完後
重新開機會回歸原始狀態
那要如何儲存??
就打save(有些舊版本要打saveenv)
save
基本設定如下:
set ipaddr 192.168.0.99
set serverip 192.168.0.101
save
print 
如下圖所示


接下來就是從遠端下載kernel的image的設定
通常都是用tftp來下載
在server的安裝教學按此
接下來就是下令
tftp的指令就是tftp
後面要跟的參數是
tftp loadAddress bootfilename
loadaddress就是你要將image下載到硬體的哪裡(通常以16進位來表示)
bootfilename就是在你主機上的檔名
設定如下:
tftp 22000000 uImage
成功如下圖

要是出現
*** ERROR: `ethaddr' not set
請設定ethaddr
ethaddr只能設定一次
也就是設定MAC address
輸入32位元的數值
set ethaddr 11:22:33:44:55:66
save
要是出現Loading: T T T T
如下圖
可以按下ctrl+c強制中斷
並且檢查是否server的ip設錯
或是硬體的ip設錯網段
是否可以連到server

接下來就是如何讓uboot利用nfs掛載root-file-system
就要設定以下參數
set bootargs console=fb0 console=ttyS0,115200 androidboot.console=ttyS0 root=/dev/nfs rw init=/init nfsroot=192.168.0.101:/root/rootfs ip=192.168.0.99:192.168.0.101:192.168.0.254:255.255.255.0::eth0 off rootwait
save 
裡面比較重要的是
console為用什麼輸出訊息
上面設定是讓uart輸出包率為115200
init為一開始掛載完root-file-system之後先開啟的檔案
nfsroot為設定server的IP和資料夾的位子
ip為設定機器的ip server的ip 網路閘道 遮罩 使用哪個網路口

接下來就可以開啟kernel
下的指令是
bootm
後面的參數是16進位
bootm 22000000
就等掛載好了就會出現一個#
如下圖
就可以用linux的指令去玩了

mkimage取得方法

因為要將編好的kernel編成uImage
所以需要mkimage
網路上有提供
但是我當時不知道
只要下載jigit就可以了
apt-get install jigit

但是不知道為什麼不能用
我還在查
所以還是用以下生成出來的執行檔比較好
需要自己下載source code
編譯
但是他指附在uboot的程式裡
所以先下載uboot的程式
點此連結
在上面的網址找你想要下載uboot的版本
接下來在Linux下打
wget ftp://ftp.denx.de/pub/u-boot/u-boot-2009.11.tar.bz2

註:u-boot-2009.11.tar.bz2為你想下載的檔案
下載後解壓縮打
tar -jxvf u-boot-2009.11.tar.bz2
然後進入uboot的資料夾
因為我沒有要編uboot
只是因為mkimage的編譯被包在裡面
所以一定要uboot的make來編譯才行
所以按照uboot的編譯
首先要default config
也就是下
make at91sam9263ek_nandflash_config

註:at91sam9263ek_nandflash_config為其中的define config
但因為我沒有要編譯uboot所以講解跳過
看到Configuring for at91sam9263ek board...
代表設定成功
接下來本來要設定cross_compile
但是我只要mkimage所以接下來執行
make
雖然會有很多錯誤
但是進入
cd tools/
就會看見mkimage了
接下來就把mkimage
放到你path裡面的某一個地方
例如:/usr/bin
cp mkimage /usr/bin
就完成了

AT91SAM9263 kernel 編譯步驟

環境:
Linux : Ubuntu 8.04
Kernel : Linux kernel 2.6.27

首先需要下載Linux kernel
點此教學連結
再將廠商的修改檔Patch上去
點此教學連結
以上步驟都做好後再進行編譯

AT91SAM9263 uBoot首次燒入



假如是這塊板子的可以跟我這樣做
這塊是跟公板差不多的layout
所以公板因該也可以這樣做

首先先將系統核心切換到NAND Flash
也就是將S1的2、3隻腳切換到ON
1、4隻腳切換到OFF

接下來就是連接板子的USB-JTAG到電腦
開啟裝置管理員看看是否有連接成功
 
看看是否有兩個USB Serial Port(COMXX)
註:COMXX會因為系統的關係編號會有所不同
問題一: 沒有兩個USB Serial Port
要是沒有的話在USB Composite Device按右鍵
選擇解除安裝
再重新插入USB-JTAG到電腦
直到有兩個出現
要不然就換個電腦的USB插槽試試看
問題二:沒有找到驅動程式
去網路下載PL2303的Driver
安裝就可以找到了
開啟putty
請去下載0.60以上的版本


將選項選到Serial
將Serial line打上COMXX
註:COMXX會因為系統的關係編號會有所不同
請選擇USB Serial Port的二個的編號
Speed填上115200
完成時按下Open
註:要是你不想要每次都這樣設定
可以在Saved Sessions裡填上名子
然後按下Save
下次開啟時只要在名子上點兩下就可直接Open

接下來按下reset的按鈕
要是畫面出現RomBOOT的文字
代表沒有uBoot
要燒入uBoot接下來就是如何燒入uBoot
要是有出現uBoot代表有uBoot不需要燒入

下載AT91的ISP
按此連結

安裝後
將其版子的USB-DEV連接到電腦
電腦會接收到版子的USB
開啟剛安裝好的SAM-BA
要是有連接成功
就會出現/usb/ARM0
選擇board為AT91SAM9263-EK
connect

就會進入燒入模式
切換到NandFlash
選擇Scripts為Enable NandFlash按下Execute
就會顯現一些資訊有上圖的資訊代表成功

 
接下來燒入開頭檔
選擇Scripts為Send Boot File按下Execute
會開啟選擇檔案
找到版子附的檔名為nandflash_at91sam9263ek.bin的檔案
確定就OK

再來就是燒入uBoot的系統
首先將Send File Name選擇到版子附的檔名為NandFlash_u-boot.bin的檔案
將Address的位置設定到0x20000
按下Send File就可以了



Patch AT91的Linux kernel

因為有很多程式都會更新
linux的更新適用Patch的方式更新
所以需要下載Patch檔案來更新
不過要核對版本
要跟對應的一樣
要不然Patch過去的檔案會錯誤
以下是AT91的Patch檔案的網站
按此連結
也就是我要Patch Linux kernel 2.6.27的檔案
就需要找2.6.27-at91.patch.gz下載

照上面的教法
首先是下載檔案
然後再利用zcat的指令作Patch
wget http://maxim.org.za/AT91RM9200/2.6/2.6.27-at91.patch.gz
zcat 2.6.27-at91.patch.gz | patch -p1
wget ftp://www.at91.com/pub/linux/2.6.27-at91/2.6.27-at91-exp.3.patch.gz
zcat 2.6.27-at91-exp.3.patch.gz | patch -p1