日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Pogoplug Pro HD 折騰參考

 wedone 2013-07-20
轉(zhuǎn)自:http://www./forum/viewthread.php?tid=1202434&extra=page%3D1&page=1
機(jī)器參數(shù)就不介紹了,冷門(mén)的CPU。本來(lái)首發(fā)小白論壇,結(jié)果被屏蔽了……

Pogoplug Pro根本不會(huì)因?yàn)樗C(jī)而變磚!除非你的硬件損壞。
但是錯(cuò)誤的操作可能會(huì)導(dǎo)致NAND的原生系統(tǒng)不能啟動(dòng),只能通過(guò)做啟動(dòng)硬盤(pán)來(lái)進(jìn)行NAND修復(fù)。


文件共享如下:百度盤(pán)
initrd文件說(shuō)明:
1.支持多個(gè)rootfs文件啟動(dòng),也就是initrd會(huì)搜索/dev/sdx1文件目錄,檢查是否存在boot.from.here的啟動(dòng)標(biāo)志文件,如果有該標(biāo)志,initrd將會(huì)強(qiáng)制加載該設(shè)備為根目錄(如存在多個(gè)標(biāo)記,sdb1優(yōu)先于sda1……以此類(lèi)推),如果該根目錄系統(tǒng)存在問(wèn)題,則系統(tǒng)將可能啟動(dòng)失敗。
debian 7 rootfs文件說(shuō)明:
1.燈光信號(hào)被改變,橘色燈光被設(shè)置為內(nèi)置SATA硬盤(pán)讀寫(xiě)指示燈;板載藍(lán)色燈變?yōu)殚W燈,綠色燈亮度被調(diào)低并且啟動(dòng)后會(huì)常亮;
2.通過(guò)pogoplug的blparam工具自動(dòng)檢查nand設(shè)備里面記錄的mac地址并自動(dòng)設(shè)置,如果nand設(shè)備的uboot參數(shù)里面的mac信息等出現(xiàn)錯(cuò)誤,可能無(wú)法正常啟動(dòng)設(shè)備,需要自行調(diào)整和配置etc/network/pre-up.d目錄的下的文件。磁盤(pán)鏡像文件說(shuō)明:
1.磁盤(pán)鏡像文件可以用winhex恢復(fù),系統(tǒng)是用于256M內(nèi)存的版本,rootfs分區(qū)占用4G大小。

stage1和uboot相關(guān)文件應(yīng)用于nand和sata設(shè)備存在不一致,文件名中存在s(sata)和n(nand)用于區(qū)分。

默認(rèn)用戶(hù)名和密碼均為:root

如下操作中,涉及各種.warpped文件名和/dev/sdX設(shè)備名需要你針對(duì)你本機(jī)的具體情形進(jìn)行修改和調(diào)整。
應(yīng)用于NAND和硬盤(pán)設(shè)備的stage1和uboot文件不通用,請(qǐng)自行根據(jù)情況選擇。


【如下各個(gè)動(dòng)作均為分離,請(qǐng)自行根據(jù)情形進(jìn)行組合使用】


創(chuàng)建一個(gè)可啟動(dòng)的SATA硬盤(pán)設(shè)備:
【分區(qū)命令使用parted,如機(jī)器linux環(huán)境未安裝,請(qǐng)先安裝parted包?!?/font>
  • 1.清空前32M,使其為空白;
    dd if=/dev/zero of=/dev/sdX bs=1M count=32
  • 2.設(shè)置系統(tǒng)分區(qū)格式表類(lèi)型;
    parted /dev/sdX mklabel msdos
    [這是一個(gè)設(shè)置分區(qū)格式表為msdos格式的命令,也可以分區(qū)格式為gpt]
  • 3.劃分第一個(gè)分區(qū),用于linux的根目錄系統(tǒng),第一個(gè)分區(qū)前需要保留32M未分區(qū)的空間,用于保存系統(tǒng)的stage1、uboot和kernel等核心數(shù)據(jù);
    parted /dev/sdX mkpart primary 33554432B 8623489023B
    [這個(gè)命令劃分第一個(gè)分區(qū)從32M開(kāi)始,第一個(gè)分區(qū)大小為8G,想要分區(qū)為其他大小,請(qǐng)自行計(jì)算,上述命令最后兩個(gè)參數(shù)分別為起始點(diǎn)和結(jié)束點(diǎn)]
  • 4.格式化第一個(gè)分區(qū),使其為linux根目錄分區(qū),系統(tǒng)分區(qū)格式可以為ext2或者ext3;
    mkfs.ext3 /dev/sdX1
    [本命令將分區(qū)格式化為ext3格式]
  • 5.【可選】將硬盤(pán)剩余空間分為第二個(gè)數(shù)據(jù)分區(qū)并格式化;
    parted /dev/sdX mkpart primary 8623489024B 100%
    mkfs.ext3 /dev/sdX2
  • 6.接下來(lái)需要做的過(guò)程:
  • 1.寫(xiě)入硬盤(pán)可啟動(dòng)標(biāo)志的隱藏扇區(qū)數(shù)據(jù);
  • 2.寫(xiě)入stage1到硬盤(pán);
  • 3.寫(xiě)入uboot到硬盤(pán);
  • 4.寫(xiě)入uboot環(huán)境參數(shù)到硬盤(pán);
  • 5.寫(xiě)入kernel到硬盤(pán);
  • 6.寫(xiě)入initd到硬盤(pán);
  • 7.解壓rootfs到硬盤(pán)的第一個(gè)分區(qū);


寫(xiě)入硬盤(pán)可啟動(dòng)標(biāo)志數(shù)據(jù)到隱藏扇區(qū):
  • Pogoplug優(yōu)先會(huì)從SATA硬盤(pán)啟動(dòng)并載入硬盤(pán)中的stage1數(shù)據(jù),但是需要硬盤(pán)內(nèi)包含一個(gè)特殊標(biāo)記數(shù)據(jù)。如下命令就是寫(xiě)入這些標(biāo)志數(shù)據(jù)到硬盤(pán)上。
  • 如果需要備份原始數(shù)據(jù),請(qǐng)執(zhí)行:
    dd if=/dev/sdX of=bootrom.bak bs=1 count=444
  • 寫(xiě)入命令:
    dd if=bootrom.warpped of=/dev/sdX
    sync

可啟動(dòng)SATA硬盤(pán)前32M數(shù)據(jù)結(jié)構(gòu)(基于官方修改,制作非官方系統(tǒng)啟動(dòng)盤(pán),參考Iomega HMNHDCE設(shè)置):
  1.         起始扇區(qū)        尺寸        內(nèi)容
  2.         0        444        Bootable flag
  3.         0        445-512        Legacy MBR
  4.         1        1536        GPT Partition table
  5.         34        8736        Stage-1 Bootloader
  6.         154        103552        U-Boot[位置依賴(lài)于stage1里面設(shè)置]
  7.         558        8192        U-Boot environment[位置依賴(lài)于uboot參數(shù)設(shè)置]
  8.         1290        2189216        uImage kernel[位置依賴(lài)于uboot環(huán)境參數(shù)設(shè)置]
  9.         16674        2787216        uImage initrd[位置依賴(lài)于uboot環(huán)境參數(shù)設(shè)置]
  10.         57088        4640        Stage-1 Bootloader (2nd copy)
  11.         57208        103568        U-Boot (2nd copy)
  12.         58344        2189216        uImage kernel (2nd copy)
復(fù)制代碼



寫(xiě)入stage1到硬盤(pán)中:
  1. dd if=stage1.wrapped of=/dev/sdX seek=34 bs=512
  2. sync
復(fù)制代碼

寫(xiě)入uboot到硬盤(pán)中:
  1. dd if=u-boot.wrapped of=/dev/sdX seek=154 bs=512
  2. dd if=u-boot.wrapped of=/dev/sdX seek=57208 bs=512
  3. sync
復(fù)制代碼


寫(xiě)入uboot環(huán)境參數(shù)到硬盤(pán)中:
  1. dd if=u-bootenv.warpped of=/dev/sdX seek=558 bs=512
  2. sync
復(fù)制代碼


寫(xiě)入kernel到硬盤(pán)中:
  1. dd if=uImage.warpped of=/dev/sdX seek=1290 bs=512
  2. dd if=uImage.warpped of=/dev/sdX seek=58344 bs=512
  3. sync
復(fù)制代碼

寫(xiě)入Initrd到硬盤(pán)中:
  1. dd if=initrd.wrapped of=/dev/sdX seek=16674 bs=512
  2. sync
復(fù)制代碼


解壓一個(gè)rootfs文件到硬盤(pán)的第一個(gè)分區(qū)中:
  • 首先創(chuàng)建掛載硬盤(pán)的目錄:
    mkdir /tmp/disk1
  • 掛載硬盤(pán)第一個(gè)分區(qū)到目錄:
    mount /dev/sdX1 /tmp/disk1
  • 解壓rootfs文件到這個(gè)目錄:
    tar -C /tmp/disk1 -xvf /path/rootfs.gz #[壓縮的rootfs的路徑和文件名]
    sync


NAND設(shè)備mtd1中的數(shù)據(jù)結(jié)構(gòu):
  1.         起始點(diǎn)         長(zhǎng)度         內(nèi)容
  2.         0x00000000 0x00020000(128K)* encoded stage1 loader
  3.         0x00020000 0x00020000(128K)* encoded backup of stage1 loader
  4.         0x00040000 0x00020000(128K)* uboot copy 1
  5.         0x00060000 0x00020000(128K) uboot spare copy (unused)
  6.         0x00080000 0x00020000(128K) uboot spare copy (unused)
  7.         0x000a0000 0x00020000(128K)** boot environment
  8.         0x000c0000 0x00020000(128K)** spare boot env block (if first is bad)
  9.         0x000e0000 0x00020000(128K)** spare boot env block (If second is bad)
  10.         0x00100000 0x00020000(128K)* uboot copy 2
  11.         0x00120000 0x00020000(128K) uboot spare copy (unused)
  12.         0x00140000 0x00020000(128K) uboot spare copy (unused)
  13.         0x00160000 0x00020000(128K) ???/empty/garbage/unused
  14.         0x00180000 0x00020000(128K) ???/empty/garbage/unused
  15.         0x001a0000 0x00020000(128K) ???/empty/garbage/unused
  16.         0x001c0000 0x00020000(128K) ???/empty/garbage/unused
  17.         0x001e0000 0x00020000(128K) ???/empty/garbage/unused
  18.         0x00200000 0x00300000(3M) CE uImage copy 1        【kernel數(shù)據(jù)區(qū)】
  19.         0x00500000 0x00300000(3M) alarm uImage copy 1        【可替換為initramfs文件數(shù)據(jù)區(qū)】
  20.         0x00800000 0x00300000(3M) CE uImage copy 2        【kernel數(shù)據(jù)區(qū),備份】
  21.         0x00b00000 0x00300000(3M) alarm uImage copy 2        【可替換為initramfs文件數(shù)據(jù)區(qū),備份】
復(fù)制代碼


備份NAND的stage1:
nanddump -n -l 0x20000 -f stage1.encoded.01 /dev/mtd1
nanddump -n -s 0x20000 -l 0x20000 -f stage1.encoded.02 /dev/mtd1


備份NAND的mtd中的各項(xiàng)數(shù)據(jù):
  1. nanddump -n -s 0x20000 -l 0x20000 -f stage1.encoded.02 /dev/mtd1
復(fù)制代碼

請(qǐng)根據(jù)NAND設(shè)備mtd1設(shè)備數(shù)據(jù)表結(jié)構(gòu),自行修改上述命令中的-s【起始點(diǎn)參數(shù)】-l【長(zhǎng)度參數(shù)】-f【備份文件名】


寫(xiě)入stage1到NAND中:
  1. flash_erase /dev/mtd1 0x00 2
  2. nandbd -s stage1.wrapped /dev/mtd1
復(fù)制代碼

[請(qǐng)不要用nandbd寫(xiě)入uboot和kernel數(shù)據(jù),否則將出現(xiàn)異常]


寫(xiě)入已編碼的stage1到NAND中【驗(yàn)證中】:
  1. flash_erase /dev/mtd1 0x00 2
  2. nandwrite -p -s 0x00000 /dev/mtd1 stage1.endoced
  3. nandwrite -p -s 0x20000 /dev/mtd1 stage1.endoced
復(fù)制代碼



寫(xiě)入uboot到NAND中:
flash_erase /dev/mtd1 0x40000 3
flash_erase /dev/mtd1 0x100000 3
nandwrite -p -s 0x40000 /dev/mtd1 u-boot.wrapped
nandwrite -p -s 0x100000 /dev/mtd1 u-boot.wrapped


寫(xiě)入kernel、uboot、initd數(shù)據(jù)到NAND中:
  • 根據(jù)NAND設(shè)備數(shù)據(jù)結(jié)構(gòu),首先擦除對(duì)應(yīng)數(shù)據(jù):
    flash_erase /dev/mtd1 0x40000 3
    【請(qǐng)自行修改最后的兩個(gè)參數(shù),第一個(gè)參數(shù)為起始點(diǎn),第二個(gè)參數(shù)為塊數(shù)量,一個(gè)塊大小為128K,1M為8個(gè)數(shù)據(jù)塊】
    【如果需要寫(xiě)入kernel和inited,一般用3M的數(shù)據(jù)空間,數(shù)據(jù)塊數(shù)量為24】
  • 寫(xiě)入相應(yīng)文件:
    nandwrite -p -s 0x200000 /dev/mtd1 uImage.wrapped
    【請(qǐng)自行修改最后兩個(gè)參數(shù),第一個(gè)參數(shù)為起始點(diǎn),第二個(gè)參數(shù)為需要寫(xiě)入的文件名】


NAND里面的uboot啟動(dòng)參數(shù)說(shuō)明:
  • NAND里面的啟動(dòng)參數(shù),可以通過(guò)uboot的命令行環(huán)境進(jìn)行修改和保存,在linux環(huán)境下,可以通過(guò)官方工具blparam進(jìn)行修改;
  • 官方工具修改uboot參數(shù)命令行示例:
    blparam bootcmd="run boot_nand"
  • 官方工具刪除一個(gè)多余的uboot參數(shù)命令行示例:
    blparam bootcmd


官方uboot默認(rèn)參數(shù)列表:
  1.         bootcmd=run boot_nand
  2.         bootdelay=2
  3.         baudrate=115200
  4.         autoload=n
  5.         netmask=255.255.0.0
  6.         bootfile="uImage"
  7.         kernflmode=s
  8.         load_nand=nboot 60500000 0 200000
  9.         load_nand2=nboot 60500000 0 800000
  10.         boot=bootm 60500000
  11.         boot_nand=run load_nand boot || run load_nand2 boot
  12.         stdin=serial
  13.         stdout=serial
  14.         stderr=serial
  15.         bootargs=root=ubi0:rootfs ubi.mtd=2,512 rootfstype=ubifs console=ttyS0,115200 elevator=cfq mac_adr=0x00,0x30,0xe0,0x00,0x00,0x01 mem=128M poweroutage=yes
  16.         ethaddr=00:25:31:XX:XX:XX【你自己機(jī)器的mac地址】
  17.         cesvcid=XXXXXXXXXXXX【每一臺(tái)機(jī)器不一樣的序列號(hào)】
  18.         ceboardver=PPROHD1
  19.         serverip=192.168.1.20
  20.         ipaddr=192.168.1.122
復(fù)制代碼



有關(guān)啟動(dòng)過(guò)程的說(shuō)明:
本機(jī)的Linux啟動(dòng)過(guò)程為:
  • 1.stage1
  • 2.u-boot[stage2]
  • 3.kernel
  • 4.initrd[非必須過(guò)程,通過(guò)調(diào)整uboot參數(shù)確定是不是載入]
  • 5.rootfs


修改NAND里面的uboot參數(shù),載入Initrd:【需首先寫(xiě)入initrd到NAND中】
參考修改NAND的uboot參數(shù),自行修改或添加參數(shù):
  1. load_rd=nboot 60800000 0 500000  #【參數(shù)50000為寫(xiě)入的initrd文件位置】
  2. boot=bootm 60500000 60800000
  3. boot_nand=run load_nand load_rd boot || run load_nand2 load_rd boot
復(fù)制代碼



有關(guān)多系統(tǒng)啟動(dòng)說(shuō)明:
  • 1.系統(tǒng)優(yōu)先嘗試從SATA設(shè)備啟動(dòng),SATA設(shè)備必須具備前文所述內(nèi)容;
  • 2.不管系統(tǒng)是從NAND設(shè)備啟動(dòng),還是SATA設(shè)備啟動(dòng),均可以先載入initrd,initrd可以預(yù)先讀取系統(tǒng)已掛載的USB存儲(chǔ)設(shè)備,可以將rootfs調(diào)整為usb設(shè)備,也就是可以實(shí)現(xiàn)自己制作多個(gè)不同系統(tǒng)的usb rootfs設(shè)備,然后插入那個(gè)usb系統(tǒng)就啟動(dòng)那個(gè)usb系統(tǒng)。
  • 3.將發(fā)布的initrd文件將優(yōu)先從最后一個(gè)可啟動(dòng)的usb設(shè)備載入usb rootfs。前置條件為usb設(shè)備根目錄中存在【boot.from.here】標(biāo)記文件。


有關(guān)可啟動(dòng)USB設(shè)備【支持U盤(pán),USB讀卡器等等設(shè)備】的制作:
  • 1.將USB設(shè)備第一個(gè)分區(qū)格式化為ext3格式;
  • 2.將完整的rootfs文件,包括與kernel配套的modules文件等等解壓到USB設(shè)備的第一個(gè)分區(qū)中;
  • 3.設(shè)立啟動(dòng)標(biāo)記文件【boot.from.here】;
    touch /[pathtousbroot]/boot.from.here


Debian下面安裝webmin的命令:
  1.         echo "deb http://download./download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list
  2.         echo "deb http://webmin.mirror./repository sarge contrib" >> /etc/apt/sources.list.d/webmin.list
  3.         cd /root
  4.         wget http://www./jcameron-key.asc
  5.         apt-key add jcameron-key.asc
  6.         apt-get update
  7.         apt-get install webmin
復(fù)制代碼

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多