-----------Google-----------





Raspberry Pi2 Cross-compiling Kernel
native- dsd 再生 patch を当て 再構築
実験中!未確認部有
<<トップページへ

■作業

DSDネイティブ再生(非DoP)の実験をRaspberry Pi2で行う。

1. ベースとなるarchlinuxのインストール
再構築するKernelを組み込むためベースとなるArchlinuxをインストールして起動を確認しておきます。

(1) SDカード−USBアダプターを使ってSDカードをPCに認識させておく。
(2) PCにArchlinuxインストール用ファイルをdownload
(3) SDカードを予めフォーマットしておく。今回は2パーテーションに分けた。
    sdx1:fat32 300M(bootフラグ)
  sdx2:ext3   約7G

$ wget http://sg.mirror.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
# mount -t ext4 /dev/sdh2 /mnt 
# mkdir /mnt/boot
# mount -t vfat /dev/sdh1  /mnt/boot ※入れ子のmountになっているので注意
# bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz  -C /mnt
# sync
# umount /mnt/boot
# umount /mnt
# rm -r /mnt/boot

※作業が終了したら一端RaspberryPI2へSDカードを刺し込んで起動する事を確認する。


2. クロスコンパイルよるKernel再構築~インストール

(1) 元ソースを用意する。
(2) Kernel再構築のためのツールのインストール,downloadして配置
(3) KernelにDSDネイティブ再生のためのパッチを当てる。
(4) Kernel再構築の開始
(5) 作成されたKernel、その他のファイルをSDカードへインストール

$ cd /home/hoge
$ git clone --depth=1 https://github.com/raspberrypi/linux
$ patch -p1 < native-dsd-4.4.6-20160502.patch
$ patch -p1 < native-dsd-noise.patch

# apt-get install bc
# cd /
# git clone https://github.com/raspberrypi/tools

# cd /home/hoge/linux
# KERNEL=kernel7
# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
# ARCH=arm CROSS_COMPILE=/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- make -j5  zImage modules dtbs
# mkdir mnt/fat32
# mkdir mnt/ext4
# mount /dev/sdh1 mnt/fat32
# mount /dev/sdh2 mnt/ext4

# make ARCH=arm CROSS_COMPILE=/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install
# mv mnt/fat32/kernel7.img mnt/fat32/kernel7.img.old
# scripts/mkknlimg arch/arm/boot/zImage mnt/fat32/kernel7.img

# cp arch/arm/boot/dts/*.dtb mnt/fat32/
# cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
# cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/

# sync
# umount mnt/fat32
# umount mnt/ext4


参考リンク:https://www.raspberrypi.org/documentation/linux/kernel/