數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#11 2012-07-11 22:34:50

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [Vistor NAS-34] 安裝Arch Linux ARM

以內建U-Boot 1.1.1 (Jul 21 2007 - 13:08:28) Marvell version: 1.10.8來說, 運用的指令是操作NOR, 非NAND.

>> flinfo Bank # 1: SAMSUNG SAMSUNG_ID_K8D6316UBM (8 Mbit) Size: 8 MB,Bus Width: 1, device Width: 2. Flash base: 0xff800000,Number of Sectors: 135 Type: BOTTOM. Sector Start Addresses: 00000000 00002000 00004000 00006000 00008000 ... 007b0000 007c0000 007d0000 007e0000 007f0000 Bank # 2: missing or unknown FLASH type


在U-Boot下操作, 相關說明比較晦澀難懂. 例如:
upflash- update whole flash image
upkernel- update kernel image
upramdisk- update ramdisk
這些我還搞不太清楚. 若搞掛了, 沒找出JTAG接腳, 就比較麻煩. 所以才使用mtd-utils作測試.

備份的MTD, 可上傳到TFTP server, 由U-Boot下指令載入, 進入原廠韌體WebUI. 也可以解開, 檢視檔案.



離線

 

#12 2012-07-20 10:46:37

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [Vistor NAS-34] 安裝Arch Linux ARM

因Arch Linux ARM釋出的核心與核心模組不適用於Orion, 以下簡述由ABS製作NAS-34的核心與核心模組套件.

1. 建立編譯環境, 修改編譯參數.
2. clone PKGBUILDs, 取core/linux

$ git clone git://github.com/archlinuxarm/PKGBUILDs.git PKGBUILDs $ cp PKGBUILDs/core/linux/* ~/ABS/PKGBUILDs/core/linux/


3. 修改PKGBUILD, 改由學術網路下載核心原始碼. 暫停建立完整套件.

$ cd ~/ABS/PKGBUILDs/core/linux/ $ nano PKGBUILD source=("ftp://ftp.twaren.net/Unix/Kernel/linux/kernel/v3.x/linux-${_basekernel}.tar.bz2" "ftp://ftp.twaren.net/Unix/Kernel/linux/kernel/v3.x/patch-${pkgver}.bz2" ... make menuconfig ... msg "Stopping build" return 1


4. 自動下載核心原始碼. mach-types更新後, MD5錯誤.

$ makepkg -s ... ==> Validating source files with md5sums... ... mach-types ... FAILED ... ==> ERROR: One or more files did not pass the validity check!


5. 計算mach-types MD5值, 修改PKGBUILD

$ md5sum mach-types $ nano PKGBUILD md5sums=( 覆寫mach-types MD5值


6. 自動修正核心原始碼. 進入menuconfig, 挑選需要的選項後, 存檔. 停止建立套件.

$ makepkg -s ==> Retrieving Sources... ... ==> Validating source files with md5sums... ... ==> Extracting Sources... ... ==> Starting build()... patching file Documentation/HOWTO patching file Documentation/development-process/5.Posting ... ==> Stopping build ==> ERROR: A failure occurred in build(). Aborting...


7. 建立NAS-34的核心config

$ cd src/linux-3.1/ $ make menuconfig


8. 挑選需要的選項後, 存檔為config, 覆寫Kirkwood的config.
7. 修正後的核心原始碼, 可複製到x86作交叉編譯.
8. 覆寫Kirkwood的config, 重新計算MD5值.
9. 註銷暫停, 準備建立套件.

$ nano PKGBUILD md5sums=( 覆寫config MD5值 ... #make menuconfig ... #msg "Stopping build" #return 1


10. 建立套件.

$ makepkg


備註:
1. 在NAS-34上編譯, 需要漫長等待.
2. 可使用screen或console下達指令後, 離線編譯.
3. 建立的套件為.xz壓縮檔, 使用pacman -U安裝或解壓縮安裝.

寫入NOR後, 重新開機:

_ _ _ _ | \ | | | | (_) | \| | ___| |_ _ __ ___ _ __ ___ __ | . ` |/ _ \ __| '__/ _ \| '_ \| \ \/ / | |\ | __/ |_| | | (_) | | | | |> < |_| \_|\___|\__|_| \___/|_| |_|_/_/\_\ _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** LOADER ** ** MARVELL BOARD: NTX-88F5182-NH233 LE U-Boot 1.1.1 (Jul 21 2007 - 13:08:28) Marvell version: 1.10.8 DRAM CS[0] base 0x00000000 size 128MB DRAM Total size 128MB mv_flash.c: [8192kB@ff800000] Protect flash from 0xFFF90000 ~ 0xFFFFFFFF Flash: 8 MB Addresses 20M - 0M are saved for the U-Boot usage. Mem malloc Initialization (20M - 16M): Done Soc: 88F5182 A2 CPU: ARM926 (Rev 0) running @ 500Mhz Orion 1 streaming disabled SysClock = 166Mhz , TClock = 166Mhz USB 0: host mode USB 1: host mode PCI 0: PCI Express Root Complex Interface PCI 1: Conventional PCI, speed = 33000000 Net: egiga0 [PRIME] Using 88E1118 phy Marvell Serial ATA Adapter Intergrated Sata device found Device 0: OK Model: ST380811AS Firm: 3.AAE Ser#: 5PS1W259 Type: Hard Disk Supports 48-bit addressing Capacity: 76319.0 MB = 74.5 GB (156301488 x 512) hit any key to switch tftp boot. Hit any key to stop autoboot: 0 bootcmd:[run myRAID] Hit any key to stop autoboot: 0 src base_address=00000000, size = d src address=FF800000 dest address=00800000 count =00260000 src base_address=00000000, size = d src address=FFA60000 dest address=00B00000 count =00220000 ## Booting image at 00800000 ... Image Name: Linux-3.1.10-12-Orion Created: 2012-07-20 17:48:59 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2361032 Bytes = 2.3 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK OK ## Loading Ramdisk Image at 00b00000 ... Image Name: Linux-3.1.10-12-Orion Raid0 Created: 2012-07-20 9:59:46 UTC Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 2114909 Bytes = 2 MB Load Address: 00b00000 Entry Point: 00b00000 Verifying Checksum ... OK ## Transferring control to Linux (at address 00008000) ... Starting kernel ... arg:console=ttyS0,115200 root=/dev/md0 rootfstype=ext4 Uncompressing Linux... done, booting the kernel. :: running early hook [udev] :: running hook [udev] :: Triggering uevents... :: performing fsck on '/dev/md0' /dev/md0: clean, 36424/19521536 files, 1420811/78084096 blocks :: mounting '/dev/md0' on real root :: running cleanup hook [udev] INIT: version 2.88 booting > Arch Linux ARM > http://www.archlinuxarm.org ------------------------------ :: Adjusting system time and setting kernel timezone [DONE] :: Starting UDev Daemon [DONE] :: Triggering UDev uevents [DONE] :: Loading User-specified Modules [DONE] :: Waiting for UDev uevents to be processed [DONE] :: Configuring Virtual Consoles [DONE] :: Bringing up loopback interface [DONE] :: Unlocking encrypted volumes [DONE] :: Checking Filesystems [DONE] :: Remounting Root and API filesystems [DONE] :: Mounting Local Filesystems [DONE] :: Activating Swap [DONE] :: Configuring Time Zone [DONE] :: Initializing Random Seed [DONE] :: Removing Leftover Files [DONE] :: Setting Hostname: NAS-34 [DONE] :: Saving dmesg Log [DONE] INIT: Entering runlevel: 3 :: Starting Syslog-NG [DONE] :: Starting Network [DONE] :: Starting OpenNTPD [DONE] :: Mounting Network Filesystems [DONE] :: Starting crond daemon [DONE] :: Starting Secure Shell Daemon [DONE] Arch Linux 3.1.10-12-Orion (ttyS0) NAS-34 login:


console訊息變得精簡, 由dmesg查閱其他訊息.


最後修改: hippo (2012-08-22 14:12:29)


離線

 

#13 2012-07-23 01:44:43

thx
精靈
註冊日期: 2008-01-29
文章數: 99
目前積分 :   
網站

Re: [Vistor NAS-34] 安裝Arch Linux ARM

五體投地 第一次看到這種改法!!!!!
話說 保持rootfs and kernel 在原來8mb nor 內精簡有合何建議嗎?



Opensources,虛擬化,Voip,FC ,Storage  ,Embedded system 無聊人士實驗室
http://www.osslab.com.tw

離線

 

#14 2012-07-23 11:00:01

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [Vistor NAS-34] 安裝Arch Linux ARM

如果要繼續使用原廠的核心與rootfs, 受限於8MB flash. 若要安裝Optware, 只得指向硬碟空間. 如同想像PC的C:只有8MB, 要安裝其他應用程式, 只好裝在D:. 好處是, 不需硬碟, 就有OS.

若硬要喬入8MB內, 除了OS, 還需要應用程式. 應用程式要由原始碼編譯. 編譯應用程式前, 可能得先編譯其他函式庫. 編譯所需的函式庫, 可能還得先編譯其他相關的程式. 環環相扣, 惡夢連連. 而且8MB能塞入幾套應用程式呢?

如果一定要在8MB內跑OS, 最簡便應該是改用OpenWrt, 而且有現成套件可用, 省去編譯的困擾. 同樣, 不需硬碟, 就有OS.

觀察最早使用的久森MZK-NAS01SG與威聯通TS-109 Pro, MZK-NAS01SG無硬碟可進入WebUI, TS-109 Pro不行. 那時心中就已埋下疑點. 日後再由迷你筋斗雲的啟發, 原來Linux OS也可以搞入flash. 所以在華碩NAS-M25胡亂測試後, 再將Arch Linux ARM套用於NAS-34.

當然, 每個人的學習歷程不同, 需求也不同. 如果要在原廠韌體內打轉, 應可改良其WebUI. 如果不在意WebUI, 套用自己喜愛的Linux OS, 也是不錯的選擇.


離線

 

#15 2012-07-29 04:58:26

thx
精靈
註冊日期: 2008-01-29
文章數: 99
目前積分 :   
網站

Re: [Vistor NAS-34] 安裝Arch Linux ARM

http://code.google.com/p/alt-f/
H大要不要考慮這... 8MB 裝了精簡功能 但還是有基本gui

http://code.google.com/p/alt-f/wiki/HowToBuild
我該改什麼以讓nas-34也可用 dns323 sources code? 有在編譯openwrt for orion 不過套個luci總覺得礙手礙腳


最後修改: thx (2012-07-29 05:00:08)



Opensources,虛擬化,Voip,FC ,Storage  ,Embedded system 無聊人士實驗室
http://www.osslab.com.tw

離線

 

#16 2012-07-29 13:31:45

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [Vistor NAS-34] 安裝Arch Linux ARM

謝謝您提供的資訊.

Alt-F使用uClibc, ipkg等, 與一般嵌入式設備方法相同, 是很精簡. 參考Software, 就一般NAS的需求了. 額外的Packages, 一樣得安裝在硬碟.

uClibc的BuildRoot, 印象中只玩過一次, 起因來自OpenWrt, 目的是建立Toolchain. 後來理解Tomato Toolchain後, 就沒繼續玩. Alt-F也是使用BuildRoot建立, 剛試了一下, 有錯誤產生, 還得研究看看.

以Linux tree來說, 可修改arch/arm/mach-orion5x/dns323-setup.c來套用NAS-34的硬體, 就如這篇所說. Alt-F的kernel-dns323-setup.patch, 就是修改核心v2.6.32.1的dns323-setup.c原始碼. 所以參考HowToBuild, ./mkprepare.sh成功後, 就得修改dns323-setup.c符合NAS-34硬體配置, 再make O=$BLDDIR menuconfig, 往下執行, 得到zImage, rootfs.arm.ext2. 有了核心與rootfs後, 核心加工為uImage, 放在TFTP server; rootfs放在NFS server. 進入U-Boot下指令, 就可進入Alt-F. 然後再測試WebUI與相關套件. 測試都OK後, 再搞入flash內.
流程大概是這樣, 大同小異. 核心是開始的關鍵, 比較頭痛就是了.


離線

 

#17 2012-08-22 23:45:58

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [Vistor NAS-34] 安裝Arch Linux ARM

依ALARM 3.1.10-13-ARCH config作修改, 使用CodeSourcery arm-2012.03-57交叉編譯, 產生的uImage, uInitrd, kmod已上傳Google.

1. 下載ALARM armv5te rootfs, 解壓縮到NFS.
2. 下載kmod, 解壓縮到rootfs的/usr/lib/modules/3.1.10-13-Orion/目錄.
3. 下載uImage, uInitrd, 置於TFTP.
4. 參閱這篇, 載入核心, 進入ALARM.
5. 使用depmod, 重建核心模組相依性.
6. 更新套件庫, 安裝硬碟分割, 格式化等必要套件. 大容量硬碟, 建議使用GPT處理. 若採用非ext格式, 例如:XFS, 自行載入相關核心模組.
7. 製作磁碟陣列或LVM, 自行參考相關文章. 亦可在PC上製作.
8. 磁碟陣列製作完成後, 下載解壓縮rootfs, kmod到對應分割區與目錄.
9. 參考這篇, 製作initrd. 視需要轉uInitrd.
10. initrd取出, 置於TFTP. 重新載入, 測試磁碟陣列.
11. 若一切無誤, 自行考慮是否覆寫原廠韌體. 修改U-Boot相關設定值後, 由flash載入核心.
12. 使用CodeSourcery編譯的核心與核心模組, 若覺得尚有相容性的疑慮, 參考這篇, 自行編譯.
13. 目前核心尚未解決GPIO等問題.

最後修改: hippo (2012-08-27 12:43:00)


離線

 

#18 2012-08-23 11:21:19

jzmno1
新生
註冊日期: 2012-07-27
文章數: 7
目前積分 :   

Re: [Vistor NAS-34] 安裝Arch Linux ARM

大神牛啊。


離線

 

相關討論主題

主題 回覆 點閱 最後發表
0 7813 2013-04-28 21:51:47 作者 hippo
24 80281 2013-04-24 13:25:44 作者 hannahmo
2 10639 2013-01-09 00:41:44 作者 halhalhsu
1 12888 2012-08-07 22:15:59 作者 hippo
Linux BT速度之王-RTORRENT 安裝教學 作者 ken1029  [ 1 2 3 … 9 ]
80 255912 2011-06-03 22:35:44 作者 amingo

友情連結

論壇頁尾

Powered by PunBB
© Copyright 2018 Rickard Andersson
RSS Feed