직렬 콘솔이나 네트워크 콘솔(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 드라이브로 부팅하는 이중 부팅 프로세스입니다. 더 좋은 제안이 있나요?

웹 콘솔을 통해 설치할 수 있는 방법이 있는지 잘 모르겠습니다.

시스템에는 e1000e 드라이버가 필요합니다. 이 드라이버는 표준 데비안 설치 프로그램 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 드라이브에 데비안을 설치할 수 있습니다. 분명히 이 작업을 용이하게 하려면 먼저 USB 드라이브에 debootstrap과 같은 것을 설치해야 하지만 이는 부차적인 것입니다.

답변2

다음을 통해 데비안 설치 프로그램의 웹 콘솔을 활성화할 수 있습니다.사전 방송. 설치 가이드에는 실제로 다음 내용이 포함되어 있습니다.:

# Use the following settings if you wish to make use of the network-console
# component for remote installation over SSH. This only makes sense if you
# intend to perform the remainder of the installation manually.
#d-i anna/choose_modules string network-console
#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key
#d-i network-console/password password r00tme
#d-i network-console/password-again password r00tme

anna/choose_modules설정의 주석 처리를 제거해야 합니다. SSH 키를 사용하여 로그인하려면 URL을 통해 공개 키에 액세스하고 이 network-console/authorized_keys_url설정의 주석 처리를 해제하세요. 비밀번호를 사용하려면 다른 두 설정의 주석 처리를 해제하세요.

물론 위의 설정으로 네트워크 콘솔을 시작하기 전에는 이러한 질문에 답할 수 있는 인터페이스가 없기 때문에 이전 질문도 모두 미리 준비해야 합니다. DHCP 환경에서는 다음과 같은 것도 필요하다는 의미입니다.

d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
d-i keyboard-configuration/xkb-keymap select us

preseed.cfginitrd에 파일을 추가하는 대신(부트로더가 직접 지원하지 않을 수 있음) 커널 명령줄에서 이러한 모든 설정을 제공할 수 있습니다.

linux language=en country=US locale=en_US.UTF-8 keymap=us anna/choose_modules=network-console network-console/authorized_keys_url="http://..." initrd=initrd.gz

(보다약어 목록).

관련 정보