저는 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을 통해 문제를 해결했습니다. 다음은 제가 따랐던 프로세스에 대한 간략한 개요입니다.
- USB 제거
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.
mkfs.ext4 /dev/sdb1
- 마운트 /dev/sdb1 /media/usb
debootstrap 제시/미디어/USBhttp://my.mirror/debian
I highly recommend setting up something like apt-cacher
루트 /미디어/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
편집 /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
가정:
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
그럽과 커널 설치
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
이제 /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
/etc/default/console-setup 편집:
CODESET="guess" FONTFACE= FONTSIZE= VIDEOMODE=
/etc/kernel-img.conf를 생성하고 다음 내용을 포함합니다:
image_dest = / do_symlinks = yes do_bootloader = yes do_bootfloppy = no do_initrd = yes link_in_boot = no
이제 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
다시 시작하기 전에 수행할 기타 작업(선택 사항)
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.cfg
initrd에 파일을 추가하는 대신(부트로더가 직접 지원하지 않을 수 있음) 커널 명령줄에서 이러한 모든 설정을 제공할 수 있습니다.
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
(보다약어 목록).