シリアルコンソールまたはネットワークコンソール(PCH)を使用して組み込みシステムにDebianをインストールする

シリアルコンソールまたはネットワークコンソール(PCH)を使用して組み込みシステムにDebianをインストールする

私はIntel-AtomとPCHに基づいた組み込みシステムを持っており、それを開発するのに忙しいです。組み込み環境には次のものがあります。

  • PCHを介したシリアルコンソールは、標準のカーネルでは動作しないことを意味します。 (CONFIG_SERIAL_PCH_UART_CONSOLE必要に応じて)
  • SATAドライブは内蔵環境でのみ利用可能で、インストールのために取り外すことはできません。
  • USBドライブから起動できます。
  • システムにPCH経由のイーサネットがありますが、動作していることを確認できませんでした。

console=uartPCH0,115200起動後、シリアルラインにコンソールを表示できるカスタムLinux 3.16.7カーネルを正常に構築しました。

しかし、ここから実際のインストールに移動するのは問題があるようです。 debian-installerが私のカスタムカーネルビルドを使用するように説得することはできません。

現在の理論は、最初にインストールをUSBドライブから起動し、起動してからインストールをシステムのSATAドライブから起動するデュアルブートプロセスです。より良い提案がありますか?

Webコンソールからインストールする方法があるかどうかはわかりません。

システムにはe1000eドライバが必要です。このドライバは標準のDebianインストーラISOに組み込まれています。しかし、これまでのところ、インストールシステムを起動してからssh / telnetを開くように説得する方法については明確な文書が見つかりませんでした。

どのようなヒントがありますか?

ベストアンサー1

debootstrapで問題を解決しました。以下は、私が従ったプロセスの簡単な概要です。

  1. USBの取り外し
  2. USBパーティション(4GB)

    Zap out GPT with gdisk, as my board didn't want to boot GPT.
    Created just one linux partition, nothing else.
    I had lots of problems getting a usb drive bootable on my embedded system.        
    
  3. mkfs.ext4 /dev/sdb1

  4. マウント /dev/sdb1 /media/usb
  5. debootstrap 提示/メディア/USBhttp://my.mirror/debian

    I highly recommend setting up something like apt-cacher
    
  6. ルート/メディア/USB

    Mount all these: 
    mount -t devtmpfs dev /dev
    mount -t devpts devpts /dev/pts
    mount -t proc proc /proc
    mount -t sysfs sysfs /sys
    
  7. 編集 /etc/fstab: (通常編集には nano を使用します)

    proc /proc proc defaults 0 0
    sysfs /sys sysfs defaults 0 0
    UUID=xxxx / ext4 errors=remount-ro 0 1
    
    to write UUID into file use: blkid -o value -s UUID /dev/sdb1 >> /etc/fstab
    
  8. 仮定:

    apt-get install locales
    dpkg-reconfigure locales
    apt-get install console-setup
    dpkg-reconfigure keyboard-configuration (optional?)
    apt-get install console-data
    passwd root
    adduser linuxuser
    
  9. グラップとカーネルのインストール

    apt-get install grub-pc
    I installed grub into both /dev/sdb and /dev/sdb1 but you can use install-mbr for /dev/sdb I think
    apt-get install linux-image-686-pae
    
  10. 今/etc/default/grubを編集してください:

    uncomment GRUB_TERMINAL=console
    add GRUB_GFXPAYLOAD_LINUX=text
    to GRUB_CMDLINE_LINUX_DEFAULT add: console=tty0 console=ttyPCH0,115200
    run upgrade-grub2 
    
  11. /etc/default/console-setup 編集:

    CODESET="guess"
    FONTFACE=
    FONTSIZE=
    VIDEOMODE=
    
  12. /etc/kernel-img.conf を作成し、次の内容を含めます。

    image_dest = /
    do_symlinks = yes
    do_bootloader = yes
    do_bootfloppy = no
    do_initrd = yes
    link_in_boot = no
    
  13. dpkg -i を使用してカスタムカーネルをインストールします。

    For me 2 options was important:
    CONFIG_SERIAL_PCH_UART=y
    CONFIG_SERIAL_PCH_UART_CONSOLE=y
    although I did highly customize the kernel after that.
    Currently I am compiling 3.14 with the rt-patch from linux-source-3.14 I downloaded out of wheezy-backports
    
  14. 再起動する前に実行するその他の操作(オプション)

    edit /etc/modules to force drivers to load
    edit /etc/network/interfaces
    echo myHostName > /etc/hostname
    apt-get install telnetd
    apt-get install openssh-server
    

このステップでは、ターゲット組み込みシステムからUSBを起動し、プロセス全体を再度繰り返すことで、SATAドライブにDebianをインストールできます。明らかにこれを容易にするには、まずUSBドライブにdebootstrapのようなものをインストールする必要がありますが、これは二次的なものです。

おすすめ記事