Linux kernel 支援不同 domain 的 PCI, 看起來是 ACPI 的功能之一.
其他平台看起來也有支援, 像是 sparc or mips 都有.
但是在 ARM 上並沒有這樣的支援
我的平台有 2 個 PCIe Host Controller , 而且都要設定在 PCIe bus 0 上面.
這時就拿 PCI domain 的 code 來用最快,
以下就是 Sample Code 和 ARM 部份的 Patch Code (不含我目前使用平台的 Patch)
Tags: arm, kernel, Linux, PCI
[Read more →]
Tags: 隨手札記
December 12th, 2009 · 4 Comments
最近在弄 ARM11 的 Oprofile, 結果發現執行 opcontrol 的動作之後, 沒有 log 的動作.
這時請改用 timer interrupt
在 load oprofile modules 加上 timer=1
若是 static link 時, 就要在 boot_cmd 加上 oprofile.timer=1
似乎目前的 kernel oprofile 不支援 ARM11MPCore.
http://oprofile.sourceforge.net/doc/detailed-parameters.html#timer
Tags: arm, ARM11, kernel, Linux, oprofile
[Read more →]
Tags: Embedded
如果啟動了 Jumbo Frame 加上執行 Samba , 有可能會出現類似的訊息(系統抓下來似乎有點不全)
Tags: Jumbo Frame, Linux, linux kernel, memory, samba
[Read more →]
Tags: Embedded · Linux
用 RVDS 的時候, 如果只是要拿來 Load kernel, 可以用以下這個簡單的 script. 自動 connect 到 Realview ICE, load kernel , run, 再 disconnect.
connect “@MPCore_0@RVI”
stop
readfile,raw,nowarn “<path to >/bootpImage”=0×100000
WAIT=OFF
go
disconnect,nodebug “@MPCore_0@RVI”
用
bglobal, disable “data abort”
bglobal, disable “prefetch abort”
這二個指令在 Trace32 時, 就可以讓 Linux booting 起來, 但是這一招在 RealView ICE 似乎沒有用. 要 disconnect 之後, 進到 kernel 再 connect.
當有了 shell script 之後, 就可以不用進 RVDS 的 GUI mode [...]
[Read more →]
Tags: 隨手札記
前二天,突然之間電腦就上不了網路。重開機之後發現,開機時沒有辦法 Mount Root Disk.
我的 Root Disk 是用 Raid1 + XFS 做的, 硬碟的規劃是
md1 : 100M etx3 booting 用
md2: 40G xfs Root File System 用
md3: 4G swap
md4: /home
用 kubuntu 7.04 開機之後, 檢查了一下, 看起來像是 xfs 系統亂掉, 所以就做一次 xfs_repair /dev/md2, 不過要清掉一些 LOG, 所以下的是 xfs_repair -L /dev/md2
第一次重開機是成功的, 但是跑一小時時間會 I/O Error,
所以我又開起來, mount 起來看系統有沒有問題?
檢查的結果是 xfs_repair 之後,所有的程式都沒有問題,看起來就不是 glibc 死掉,感覺像是 xfs 掛了。不過這時候我並沒有證據是 xfs 死掉造成的.
就這樣重覆修修開開, [...]
[Read more →]
Tags: Linux
April 23rd, 2009 · 1 Comment
工作上要寫個 NCQ 的實作, 這是 Linux NCQ 的 Patch.
參考一下就知道做了什麼變動.
[PATCH 01/15] libata-ncq: add NCQ related ATA constants and id macros
[PATCH 02/15] libata-ncq: add NCQ related libata flags
[PATCH 03/15] libata-ncq: pass ata_scsi_translate() return value to SCSI midlayer
[PATCH 04/15] libata-ncq: implement ap->sactive
[PATCH 05/15] libata-ncq: implement command exclusion
[PATCH 06/15] libata-ncq: implement NCQ command translation
[PATCH 07/15] libata-ncq: implement ata_eh_read_log_10h()
[PATCH 08/15] libata-ncq: [...]
[Read more →]
Tags: Hardware · Linux · Programming · 工作
最近不小心手滑買了一隻 Android Dev Phone 1 長得和 T-Mobile G1 的外型是一樣的.
雖然還沒有到貨, 但是準備工作要先作好.
Tags: Android, build, install, kernel, Linux
[Read more →]
Tags: Android · 隨手札記
December 24th, 2008 · 2 Comments
有些時候, 我們會需要一個假的 network device.
像是
1) 某些軟體會去 check network interface
2) 需要學習寫作一些軟體
所以我花了一點點時間寫了這一個 kernel modules
主要功能就是在 linux 下建立一個假的 network interface
這個 network interface
只能送(馬上就 free 掉 packet buffer), 沒有收的 function .
在 insert 時, 可以用參數 name 和 mac 指定特定的 network device name 和 mac address.
ex: # insmod fakenetdev.ko name=fake0 mac=00:aa:bb:cc:dd:ee
mac 的格式也可以是 00aabbccddee 或 00-aa-bb-cc-dd-ee
也支援用 ifconfig 修改 mac
ex: # ifconfig eth2 down
# ifconfig eth2 [...]
[Read more →]
Tags: Linux · Programming
在幾次的心理掙扎之下, 我還是下定決心換 Kubuntu 了.
主要原因還是 Gentoo 在 Desktop Linux environment 環境不太友善, 要花太多時間去調教.
從我 2004/12/11 日在 Notebook 主要作業系統從 Windows XP 轉到 Gentoo Linux 之後(請見 今天要記念一下….)
之後經歷了, Toshiba 31CDT, IBM X31 , IBM X61 等等硬體升級, Gentoo 也重灌過 3 次 (雖然看起來很多, 但是事實上仍然比我的 Windows XP 桌機少很多次, Windows XP 大概是 3~6 個月一次吧).
這次問題還是在於, Intel 的 driver 升級之後, 整個顯示效能己經下降到我無法接受的狀況(5x FPS, 正常要 600FPS 上下), 而且我找不太出來解決方法.
而系統都升級上來了, 要 [...]
[Read more →]
Tags: 隨手札記
October 16th, 2008 · 7 Comments
其實進入 Netbook 這個市場, 對 ARM 來說應該不是這麼難, 現在 ARM CPU 的 Performance 不比當年了, 重點是價格相對於ATOM 的系統會便宜很多.
搭配 ARM 的公司幾乎都是做 SoC. 成本還比 ATOM 低.
至於效能嘛, 當然還是差了一點, 不過買 Netbook 的人會很在意效能嗎?
以目前我們在規劃的產品來說, ARM11 MPCore, PCIe, SATA, Gigabit Nic , LCD Control, 2D/3D 加速引擊, 己經具備了低階 Netbook 所需的元素, 問題就在於, 怎麼樣整合 Linux 進來用. 要和誰合作?
而市場目標是什麼, 投票用 Linux, 教學用, 還是家用多媒體環境呢?
像 ARM 都是客制化市場, 或許出可以放 FullHD 的類 eeeBox 也不是不可能.
而成本還更低, [...]
[Read more →]
Tags: Embedded · Hardware · Linux · 工作