XÂY DỰNG HỆ THỐNG BỌC ĐỘNG CƠ MÁY TÍNH ĐỂ SỬ DỤNG MỤC ĐÍCH CHUNG
TỪ KHÓA: PC ENGINES WRAP WRAP BOARD WRAP PLATFORM LINUX DEBIAN SBC SOC LINUX TRÊN MÁY CHỦ NHỎ LINUX WRAP CÔNG SUẤT THẤP
Tác giả: Nathan L. Cutler
Ngày: 18 tháng 6 năm 2006
Tuyên bố từ chối trách nhiệm
Tài liệu này được cung cấp với hy vọng rằng nó có thể hữu ích cho ai đó. Tuy nhiên, nếu bạn tuân theo các quy trình được mô tả trong tài liệu này, bạn thực hiện điều đó RỦI RO CỦA CHÍNH BẠN. Tác giả không đảm bảo rằng việc làm theo các hướng dẫn ở đây sẽ dẫn đến kết quả mong muốn. Tác giả không chịu trách nhiệm về bất kỳ điều gì xảy ra với bất kỳ ai đọc hoặc sử dụng tài liệu này.
Tiểu sử
Tôi đã chạy linux với tư cách là một người dùng hơn mười năm nay. Trong vài năm qua, tôi đã không thực sự làm được nhiều việc với nó. Vào tháng 5 năm 2006, người bạn của tôi, Chip Coldwell (http://frank.harvard.edu/~coldwell) đã nói với tôi về một Máy tính Bảng mạch Đơn (SBC) dựa trên ARM mà anh ấy đã mua và đang biến thành một máy trả lời tự động. Anh ấy đang làm những việc gọn gàng với nó như cho phép truyền DMA trong trình điều khiển nối tiếp của hạt nhân. Tôi đã nghe thuật ngữ “máy tính nhúng” trước đây nhưng cho đến lúc đó tôi không nhận ra nó có nghĩa là gì. Khi tôi nhìn thấy những bức ảnh về SBC của Chip (dựa trên chip “System-on-a-Chip” (SoC) của Atmel (dự định chơi chữ)) và đọc trên mạng về những người đang chạy Linux trên những chiếc máy tính nhỏ bé, gọn gàng này, tôi đã bị thu hút. bằng ý tưởng có một hệ thống linux tiêu thụ điện năng dưới 10W, không có quạt quay và đĩa. Cuối cùng tôi đã có được một hệ thống hoạt động mà không có quạt quay, nhưng tôi đã phải cố gắng và kiếm một đĩa quay cho nó.
Tôi đã dành khoảng một tuần để xem xét các tùy chọn khác nhau, nhưng về cơ bản, nó đã giảm xuống còn ba:
- nền tảng WRAP từ PC Engines có trụ sở tại Thụy Sĩ (http://www.pcengines.ch)
- một bảng VIA EPIA (hệ số dạng Mini-ITX) dựa trên chip Eden C3
- phục hồi bo mạch Pentium 90 cũ (với bộ tản nhiệt thụ động), cài đặt bộ điều hợp USB và chạy nó bằng ổ đĩa flash thay vì đĩa cứng
Chúng được liệt kê theo thứ tự mà tôi đã xem xét. Lúc đầu, tôi rất thích WRAP nhưng nhanh chóng bắt đầu lo lắng rằng nó sẽ không đủ sức đáp ứng nhu cầu của tôi, vì tôi mơ ước được sử dụng nó để phát MP3 và chạy X, và những thứ tương tự như vậy, và WRAP không có âm thanh hoặc khả năng VGA. và không có cách nào để thêm chúng. Vì vậy, tôi đã bật dòng bảng EPIA của VIA, một trong số đó có bộ chuyển đổi DC-DC trên bo mạch và có thể được chạy từ “wall wart”. Một lần nữa, sau một vài ngày nghiên cứu, tất cả tôi đã sẵn sàng để mua các thành phần và xây dựng một hệ thống. Nhưng sau đó, vợ tôi gợi ý rằng tốt hơn là nên đợi trước khi thực hiện một khoản đầu tư như vậy và tôi đã bình tĩnh và bắt đầu xem xét giải pháp thay thế chi phí cực thấp (thứ ba trong danh sách trên). Tuy nhiên, để làm được điều đó, tôi sẽ phải mua một trong những bộ nguồn chuyển đổi không quạt mới và một bộ chuyển đổi USB, làm tăng thêm chi phí đáng kể và tôi biết rằng một hệ thống như vậy sẽ tiêu tốn nhiều điện hơn so với WRAP hoặc VIA EPIA.
Sau đó, tôi nhận ra rằng thẻ nhớ thể rắn và ổ đĩa flash thực sự không thích hợp để chạy một hệ thống có mục đích chung. Chúng có thể tốt cho bộ định tuyến và các ứng dụng nhúng khác có thể sử dụng ổ đĩa chỉ đọc + đĩa ram nhỏ, nhưng đối với nhu cầu sử dụng máy tính Linux hàng ngày của bạn, bạn thực sự cần phải có một ổ cứng quay. May mắn thay, hiện nay có những Microdrives giá cả phải chăng cắm ngay vào khe CF của WRAP, nơi chấp nhận cả thẻ CF Loại I và Loại II.
I Take the Plunge
Cuối cùng tôi đã quyết định WRAP, vì những lý do sau:
- Cho đến nay, mức tiêu thụ điện năng thấp nhất trong 3 tùy chọn
- Thu nhỏ cực độ – làm cho nó có vẻ mát mẻ hơn
- Hỗ trợ doanh nghiệp nhỏ – bảng được thiết kế bởi một người đàn ông ở Thụy Sĩ, không phải một tập đoàn
- Nó có thể được sửa đổi để hỗ trợ USB, vì vậy tôi có thể kết nối máy in và modem CDMA với nó.
- Nó có nhiều bộ nhớ hơn (128MB) so với bo mạch Pentium 90 cũ, rất khó tìm thấy các mô-đun bộ nhớ
- Tôi có thể sống mà không có khả năng âm thanh và video, vì tôi luôn có thể thực hiện các công việc A / V trên hộp linux thông thường của mình
Vì vậy, tôi đã mua bảng WRAP. Vì tôi muốn và cần hệ thống của mình có khả năng USB, tôi đã rất ngạc nhiên khi biết rằng họ có một bộ chuyển đổi USB kép cho nó trên tay, vì vậy tôi cũng nhận được điều đó. Thông tin thêm về việc thêm tùy chọn USB sau này. Tôi cũng đã mua một bộ điều hợp Compact Flash-IDE, cho phép bạn cắm thẻ CF vào giao diện IDE thông thường và nó trông giống như một đĩa cứng.
Sau khi về nhà, tôi nhận ra hai thành phần quan trọng vẫn còn thiếu: (1) thẻ CF cho hệ thống tệp gốc và (2) cáp NULL Modem, nếu không có nó, tôi sẽ không thể xem thông báo khởi động. Đối với nguồn điện, tôi quyết định sử dụng bộ đổi nguồn AC / DC “Đa năng” mà tôi có trong kho. Tôi đã lấy nó ra, tìm thấy một đầu nối phù hợp với bo mạch và kiểm tra đầu ra bằng đồng hồ vạn năng của mình. Nó đã chết ở mức 12V và tôi giả định rằng 6VA mà nó tạo ra sẽ đủ để cung cấp năng lượng cho bảng WRAP.
Cáp NULL Modem bạn cần có đầu nối cái 9 chân ở cả hai đầu. Vì bo mạch WRAP không có bất kỳ khả năng VGA nào, cách duy nhất để vào thiết lập BIOS và xem thông báo khởi động là thông qua cổng nối tiếp (do đó là cáp NULL Modem), sử dụng trình giả lập đầu cuối trên máy tính thứ hai.
Thẻ CF hay Microdrive?
Lúc đầu, tôi có quan niệm sai lầm rằng tôi sẽ có hệ thống tệp gốc trên thẻ CF 512MB và có phần còn lại của dữ liệu trên ổ đĩa flash 1 GB được kết nối qua USB 1.1 (WRAP không hỗ trợ USB 2.0). May mắn thay, tôi đã không mua ổ đĩa flash, mặc dù tôi đã mua thẻ CF – tuy nhiên, nó vẫn rẻ (dưới 400 K) và tôi có thể giữ bản cài đặt Voyage Linux trên đó nếu tôi quyết định sử dụng WRAP như một thiết bị chuyên dụng bộ định tuyến.
Sau khi cố gắng cài đặt hệ thống Debian trên thẻ CF và gặp khó khăn khi làm cho nó hoạt động ở chế độ chỉ đọc với một số tệp và thư mục quan trọng nhất định trên hệ thống tệp tmpfs (đĩa RAM), tôi đã từ bỏ và cài đặt Voyage Linux 0.2 . Điều đó tương đối dễ dàng và thật tuyệt khi thấy bảng WRAP nhỏ của tôi khởi động và đưa ra lời nhắc linux, nhưng dần dần tôi nhận ra rằng tôi thực sự cần phải có ổ cứng, vì tôi muốn sử dụng hệ thống trong một ngày- cơ sở hàng ngày và cần hệ thống tệp gốc được đọc-ghi mọi lúc. Sau một số nghiên cứu, tôi đã đưa ra ba tùy chọn khác nhau để thêm ổ cứng vào WRAP:
- Tạo bộ điều hợp CF-to-IDE của riêng tôi (tức là bộ điều hợp cho phép tôi cắm ổ IDE vào khe cắm CF trên bảng WRAP)
- Mua NASD (Thiết bị lưu trữ đính kèm mạng), chỉnh sửa lại phần sụn trên đó để làm cho nó chạy Linux, xuất các chia sẻ NFS sang WRAP
- Mua một Microdrive và cắm nó vào khe cắm CF trên WRAP
Tôi đã viết chúng theo thứ tự mà chúng đến với tôi. Tùy chọn đầu tiên là thú vị nhất đối với tôi, vì tôi nghĩ rằng tôi có ba hoặc bốn ổ đĩa 3,5 “nằm xung quanh, tôi có thể sử dụng một trong số chúng. Tuy nhiên, có vẻ như thật khó tin, không có bộ điều hợp sẵn có nào tạo khe cắm CF thành cổng IDE, ngay cả khi khe cắm CF hoạt động ở chế độ “True IDE”. Một phần của vấn đề là điện áp – bảng WRAP chỉ cấp 3,3V cho CF, trong khi ổ IDE cần 5V. Điều đó khiến nó giống như một loại đề xuất hack phần cứng, liên quan đến việc hàn 44 dây. Sẽ khó với đầu nối IDE tiêu chuẩn nhưng với đầu nối CF, nhỏ hơn nhiều, sẽ là điều không thể.
Cho đến ngày hôm qua, tôi đã không biết rằng có một thứ như là một NAS. Tôi tìm hiểu về chúng vì tôi nghĩ có thể tồn tại một bộ điều hợp để kết nối ổ IDE với cổng Ethernet RJ45. Tôi nhận ra rằng vì tôi không sử dụng giao diện LAN bổ sung, tôi có thể kết nối ổ cứng vào đó. Chắc chắn là tôi đã tìm thấy một loạt các hộp nhỏ có ổ cứng – bạn chỉ cần cắm chúng vào mạng LAN của mình và sử dụng. Điều đó là, những chiếc hộp này đắt hơn đáng kể so với một ổ cứng 3.5 “vì bên trong chúng chứa các SBC (Máy tính một bo mạch). Rất hợp lý khi sở hữu hai trong số chúng. Tuy nhiên, tôi vẫn bị cám dỗ để mua Liên kết lưu trữ mạng Linksys LSLU2, vì tôi nhận thấy có một cộng đồng những người đam mê tích cực làm việc để hack nó. Họ thậm chí còn có một số phiên bản firmware mới khác nhau cho nó , vì vậy bạn hoàn toàn có thể cập nhật lại phần sụn và biến nó thành một hộp Linux. Giải pháp này có vẻ thú vị, nhưng tôi phải thừa nhận rằng đó là một lỗi phụ.
Từ thư từ của tôi với Pascal Dornier, người thiết kế bảng WRAP, tôi biết được rằng bạn có thể chỉ cần cắm một Microdrive vào WRAP và nó sẽ hoạt động. Tôi đã không xem xét khả năng này, bởi vì (1) Tôi chỉ có khái niệm mơ hồ về “Microdrive” là gì, và (2) Tôi nghĩ rằng nó sẽ yêu cầu quá nhiều năng lượng cho nguồn điện của bảng WRAP và (3) Tôi nghĩ WRAP chỉ lấy thẻ CF Loại I .. Hóa ra Microdrive là một giải pháp lý tưởng – Pascal kiên quyết rằng nó sẽ hoạt động nên tôi đã ra ngoài và mua một cái. Với việc vượt qua rào cản này, cách để biến bảng WRAP nhỏ của tôi thành một hộp Linux có mục đích chung đã được mở ra.
Theo thông số kỹ thuật, IBM / Hitachi 4GB Microdrive tiêu thụ 395mA ở 3,3V để ghi, là 1,3 watt.
Thiết lập hệ thống tập tin gốc
Vì có thời gian vào cuối tuần, tôi đã tìm kiếm trên mạng và tìm thấy một HOWTO (thực ra là một mục blog) của Jan Willem (http://www.lextreme.nl) để cài đặt một hệ thống Debian thông thường trên bảng WRAP. Điều này hấp dẫn tôi vì các lựa chọn thay thế, như Voyage Linux, trong khi hỗ trợ rõ ràng WRAP, lại hướng đến các ứng dụng định tuyến không dây và chạy hệ thống tệp gốc từ thẻ CF. Tôi đang tìm kiếm một giải pháp có mục đích chung hơn và Debian đơn thuần có vẻ lý tưởng. Việc cài đặt rất đơn giản. Bạn cần bộ điều hợp CF-to-IDE để cho phép cắm Microdrive vào máy tính đã chạy Linux và có kết nối Internet hoặc đĩa CD cài đặt Debian. Về cơ bản, nó bao gồm các bước cơ bản sau, đây chỉ là một phiên bản sửa đổi một chút của quy trình của Jan Willem:
- Sử dụng fdisk, tạo hai phân vùng trên Microdrive, hoán đổi và root
- Định dạng Microdrive bằng mkfs.ext3 (tôi sẽ sử dụng hệ thống tệp ghi nhật ký) và mkswap
- Gắn Microdrive, giả sử, dưới / mnt
- Sử dụng debootstrap, tải xuống và cài đặt một hệ thống Debian tối thiểu trong / mnt
- Cài đặt hạt nhân 2.6.15 từ Voyage Linux 0.2, thiết lập mô-đun
- chạy lilo -r / mnt để cài đặt bộ nạp khởi động lilo
- Di chuyển Microdisk sang WRAP
- Khởi động WRAP
Đây chỉ là một danh sách tổng quát của các bước. Các chi tiết sau đây.
fdisk
Sau khi cắm thẻ CF-to-IDE vào cổng IDE1 của hộp Linux, cắm Microdrive vào khe CF và bật nguồn cho hộp Linux, dmesg thấy Microdrive là / dev / hdc:
hdc: HMS360404D5CF00, ổ đĩa CFA DISK ... hdc: kích thước yêu cầu tối đa: 128KiB hdc: 7999488 cung (4095 MB) w / 128KiB Cache, CHS = 7936/16/63, UDMA (33) hdc: hỗ trợ xóa bộ nhớ cache hdc: hdc1
Vì vậy, tôi chạy “fdisk / dev / hdc” dưới dạng root. Microdrive được định dạng trước với hệ thống tệp FAT32.
Đĩa / dev / hdc: 4095 MB, 4095737856 byte 128 đầu, 63 cung / rãnh, 992 xi lanh Đơn vị = hình trụ 8064 * 512 = 4128768 byte Khởi động thiết bị Bắt đầu Kết thúc Khối Id Hệ thống / dev / hdc1 * 1 992 3999712+ b W95 FAT32
Vì vậy, bước đầu tiên là sâu sáu con đó và tạo một phân vùng hoán đổi và phân vùng gốc ở vị trí của nó.
Đĩa / dev / hdc: 4095 MB, 4095737856 byte 128 đầu, 63 cung / rãnh, 992 xi lanh Đơn vị = hình trụ 8064 * 512 = 4128768 byte Khởi động thiết bị Bắt đầu Kết thúc Khối Id Hệ thống / dev / hda1 1 32 128992+ 82 Trao đổi Linux / Solaris / dev / hda2 33 992 3870720 83 Linux
Như bạn có thể thấy, tôi đặt phân vùng hoán đổi ở đầu đĩa. Tôi có thể thoát ra mà không cần bất kỳ sự hoán đổi nào, nhưng cái quái gì vậy? 128MB chỉ chiếm khoảng 3% dung lượng đĩa. Với hệ thống một đĩa, phân vùng hoán đổi được “cho là” nằm ở trung tâm của đĩa, nhưng thực hiện xong điều này trước đó, tôi muốn có tất cả dữ liệu của mình trong một hệ thống tệp duy nhất hơn là dàn trải nó ra hai.
Khởi tạo các phân vùng và gắn kết
Dù sao, các lệnh tiếp theo là khởi tạo các phân vùng mới:
mkswap /dev/hdc1
mkfs.ext3 /dev/hdc2
Hai cái này không gặp trở ngại gì, vì vậy tôi đã gắn / dev / hdc2 dưới dạng / mnt:
mount -t ext3 /dev/hdc2 /mnt
Cài đặt hệ thống Debian tối thiểu bằng debootstrap
Sau đó, tôi nhận ra rằng (1) hỗ trợ ext3 phải được biên dịch vào hạt nhân, hoặc (2) Tôi phải sử dụng initramfs để tải mô-đun ext3 tại thời điểm khởi động. Điều này có thể gây ra vấn đề với hạt nhân Voyage Linux, thuộc loại nguyên khối, nếu nó không có ext3 được biên dịch trong. Nhưng hãy xem nhanh “voyage-0.2 / boot / config-2.6.15-486-voyage” giúp tôi bình tĩnh lại. ext3 ở đó. Tôi có thể tiếp tục.
debootstrap sid /mnt ftp://ftp.cz.debian.org/debian/
Tôi muốn cài đặt “sid”, phiên bản mới hơn, nhưng không thành công ở điểm cố gắng tải xuống đoạn “base-config”. Vì một số lý do, danh sách gói sid bao gồm “base-config” nhưng kho lưu trữ sid không chứa gói đó. Tuy nhiên, sau đó, tôi biết được rằng để cài đặt sid trên một hệ thống sarge như của tôi, tôi phải nâng cấp lên phiên bản sid của debootstrap, điều này thực sự có ý nghĩa rất nhiều. Sau khi làm điều đó, nó đã hoạt động, với một lỗi nhỏ.
Tiếp theo là gì?
Trong nỗ lực trước đây của tôi để Debian chạy trên WRAP (sử dụng thẻ CF), tôi đã ngay lập tức khởi động đến / mnt tại thời điểm này và cố gắng định cấu hình hệ thống trong khi thẻ CF vẫn còn trong máy cài đặt của tôi. Điều này không hoạt động quá tốt, đặc biệt là khi chạy “base-config”. Vấn đề là ngôn ngữ – trong chroot jail, base-config không thấy bất kỳ hỗ trợ ngôn ngữ nào, nhưng nó có thể thấy các biến môi trường ngôn ngữ của tôi. Vì vậy, nó đã phun ra rất nhiều cảnh báo. Để tránh điều này, tôi sẽ phân phối với cấu hình ban đầu và tiếp tục cài đặt hạt nhân và chạy lilo.
Cài đặt hạt nhân Voyage Linux 2.6.15
Sau một nỗ lực yếu ớt để biên dịch gói nhân cho WRAP, tôi đã từ bỏ và tải xuống Voyage Linux 0.2, bao gồm một nhân được biên dịch trước đã được vá để hoạt động tốt với WRAP. Một tính năng tuyệt vời của hạt nhân này (ngoài hỗ trợ ext3 được biên dịch, như đã đề cập ở trên), là nó thực sự có mọi thứ được bao gồm dưới dạng mô-đun. Vì vậy, bạn không phải biên dịch lại – nếu bạn cần kích hoạt một tính năng hạt nhân, bạn chỉ cần thêm tên của mô-đun vào / etc / modules.
Đầu tiên, tôi giải nén tarball chuyến hành trình-0.2 và bắt đầu mò mẫm trong đó. Tôi đã thực hiện các lệnh sau để chuyển hạt nhân Voyage vào hệ thống tệp gốc CF của mình:
cd voyage-0.2
cp -a boot/* /mnt/boot
cp -a lib/modules/* /mnt/lib/modules
Thiết lập cơ bản (khởi động trước)
Mô-đun nhân
Tệp cấu hình đầu tiên tôi xử lý là / etc / modules. Đây là / etc / module được tạo bởi tập lệnh thiết lập bản phân phối Voyage Linux cho bảng WRAP, trừ các trình điều khiển WLAN không được đề cập trong tài liệu này:
# Giao diện LAN
natsemi
# bộ đếm thời gian watchdog được bao gồm trong bộ xử lý GeodeSC1100
# Bỏ ghi chú dòng sau nếu bạn đang chạy trình nền cơ quan giám sát
# wd1100 sysctl_wd_graceful = 0 sysctl_wd_timeout = 30
# phần cứng màn hình nhiệt
lm77
# National Semiconductor SCx200 ACCESS.bus (cần thiết để đọc nhiệt độ)
scx200_acb base = 0x820,0
Một điều khác xảy ra với tôi là “depmod” nhưng sau đó tôi nhận ra rằng tệp modules.dep đã có trong /mnt/lib/modules/2.6.15-486-voyage, vì vậy không cần thiết.
/ etc / inittab
Tệp cấu hình tiếp theo cần chỉnh sửa là / etc / inittab. ĐÂY LÀ CRUCIAL, KHÁC BẠN KHÔNG NHẬN ĐƯỢC MỘT CONSOLE SERIAL. Vì những lý do rõ ràng, cài đặt Debian tiêu chuẩn giả định rằng bạn sẽ có bàn phím và VGA làm bảng điều khiển linux của mình. Nhưng WRAP cần một bảng điều khiển nối tiếp. Điều đó có nghĩa là chúng tôi chỉnh sửa / etc / inittab để loại bỏ bảng điều khiển ảo và kích hoạt bảng điều khiển nối tiếp. Điều này rất đơn giản, nhưng bạn phải cẩn thận với tốc độ truyền – nếu nó không khớp với những gì WRAP BIOS đang mong đợi, bạn sẽ không thấy bất kỳ thứ gì trong trình mô phỏng đầu cuối khi khởi động. Để tìm hiểu WRAP được đặt thành gì, hãy nhấn phím “s” trong khi WRAP đang thực hiện kiểm tra bộ nhớ ban đầu. Thao tác này sẽ đưa bạn đến menu BIOS, nơi bạn có thể đặt tốc độ truyền 9600, 38400 hoặc thậm chí cao hơn. Tôi đã mua 38400. Đây là tệp / etc / inittab đầy đủ:
# / etc / inittab: cấu hình init (8).
# $ Id: index.html, v 1.2 2006/06/19 08:52:38 livingston Exp $
# Cấp chạy mặc định.
id: 2: initdefault:
# Tập lệnh cấu hình / khởi tạo hệ thống thời gian khởi động.
# Điều này được chạy đầu tiên ngoại trừ khi khởi động ở chế độ khẩn cấp (-b).
si :: sysinit: /etc/init.d/rcS
# Phải làm gì ở chế độ một người dùng.
~~: S: chờ đã: / sbin / sulogin
# /etc/init.d thực thi tập lệnh S và K khi thay đổi
# của runlevel.
#
# Runlevel 0 đang tạm dừng.
# Runlevel 1 là một người dùng.
# Runlevels 2-5 là nhiều người dùng.
# Runlevel 6 đang khởi động lại.
l0: 0: chờ: /etc/init.d/rc 0
l1: 1: chờ: /etc/init.d/rc 1
l2: 2: chờ: /etc/init.d/rc 2
l3: 3: chờ: /etc/init.d/rc 3
l4: 4: chờ: /etc/init.d/rc 4
l5: 5: chờ: /etc/init.d/rc 5
l6: 6: chờ: /etc/init.d/rc 6
# Thông thường không đạt, nhưng dự phòng trong trường hợp khẩn cấp.
z6: 6: resawn: / sbin / sulogin
# Làm gì khi mất điện / mất điện trở lại.
pf :: powerwait: /etc/init.d/powerfail start
pn :: powerfailnow: /etc/init.d/powerfail ngay bây giờ
po :: powerokwait: /etc/init.d/powerfail dừng
# Bảng điều khiển nối tiếp cho WRAP
T0: 23: hồi sinh: / sbin / getty -L ttyS0 38400 vt100
Dòng cuối cùng chạy getty trên cổng nối tiếp, cho phép một người đăng nhập với quyền root.
/ etc / fstab
Ở đây chúng tôi đi với chiến lược KISS (Keep It Simple, Stupid). Vì chúng tôi có Microdrive, chúng tôi có thể phân phối với khái niệm giảm thiểu số lần ghi vào hệ thống tệp gốc.
# WRAP với Microdrive
/ dev / hda1 swap swap mặc định, 1 1
/ dev / hda2 / ext3 mặc định, 0 0
proc / proc proc mặc định
/etc/apt/sources.list
Tệp này được sử dụng bởi “apt-get” để tìm các kho chứa các gói deb. Chúng tôi chỉ cần một mục nhập tại thời điểm này:
deb http://ftp.debian.cz/debian/ sid chính
Khi chúng tôi đã tạo tệp này trong cây / mnt, chúng tôi chuyển sang và cài đặt các gói bổ sung. Một số, như “less”, là sự tiện lợi, nhưng những thứ khác, như “lilo”, là rất quan trọng và bạn sẽ không thể khởi động WRAP mà không có chúng.
chroot /mnt /bin/bash
mount /proc
apt-get update
apt-get install watchdog # goes with wd1100 module
apt-get install less
apt-get install lilo # CRITICAL! THIS IS A MUST!
apt-get install udev # CRITICAL! THIS IS A MUST!
apt-get install [your favorite package that you can't live without]
Lưu ý rằng, theo như tôi biết, grub sẽ không hoạt động với WRAP và bạn phải sử dụng LILO. Tôi chỉ lặp lại những gì tôi đã đọc
ở nơi khác, tuy nhiên, không nói từ kinh nghiệm. Quảng cáo
/etc/lilo.conf
Bước tiếp theo là cài đặt lilo (tôi đã thực sự hiểu được điều này chưa ?!). Đây là cách tôi đã làm điều đó. Sau khi hack và RTFMing, tôi đã nghĩ ra điều này cho tệp cấu hình:
boot = / dev / hdc # Microdrive hiển thị dưới dạng / dev / hdc trên hệ thống của tôi
disk = / dev / hdc # Microdrive
bios = 0x80 # WRAP's BIOS sẽ xem đây là Chính
#gọn nhẹ
lba32 # set LBA trong thiết lập WRAP BIOS - nhưng tôi đã thử với CHS và nó cũng hoạt động
cài đặt = văn bản
map = / boot / map
vga = bình thường
trì hoãn = 1
timeout = 50
lời nhắc
serial = 0,38400n8 # Không có cách nào để đặt song công, vì vậy tôi nhận được nhân đôi của mỗi ký tự khi khởi động. Thở dài.
default = Linux
hình ảnh = / vmlinuz
# initrd = / initrd.img # Voyage Linux không sử dụng initramfs (Cảm ơn Chúa!)
root = / dev / hda2 # Đây là cách Microdrive sẽ xuất hiện trên WRAP
label = Linux
append = "console = ttyS0,38400n8 reboot = bios"
chỉ đọc
# hạn chế
# bí danh = 1
Nếu bạn đang sử dụng “sid”, có một trở ngại: chroot trong “sid” hoạt động khác với chroot trong sarge. Trong môi trường chroot, không có “/ dev / hda” hoặc “/ dev / hdc” nào cả. Khi bạn chạy “df”, bạn nhận được điều này:
Hệ thống tập tin 1K-blocks Đã sử dụng Có sẵn Sử dụng% Gắn trên
sysfs 3809936 220184 3396216 7% / sys
Đó là Microdrive, nhưng không phải là “/ dev / hdc”. Nhìn vào thư mục / dev, tôi thấy chỉ có một tập hợp tối thiểu các tệp thiết bị không bao gồm / dev / hdc. Vì vậy, “lilo -t” tạo ra lỗi không thể tìm thấy / dev / hdc. Ngoài ra, liên kết biểu tượng “vmlinuz” trong thư mục gốc cần được tạo. Giải pháp mà tôi đưa ra cho vấn đề này là như sau, giả sử chúng ta đã được chroot sang / mnt:
cd /
ln -si boot/vmlinuz-2.6.15-486-voyage vmlinuz
cd dev
./MAKEDEV hda
./MAKEDEV hdc
lilo -t
Trên hệ thống của tôi, điều này là đủ để vượt qua lilo -t mà không có lỗi.
Tiếp theo tôi đã làm:
lilo -v # went without errors
umount /proc # don't know if this is necessary
exit # leave the chroot
umount /dev/hdc2 # unmount the Microdrive
shutdown -h now
Khoảnh khắc của sự thật
Tất cả những gì còn lại là gắn Microdrive vào bảng WRAP và cấp nguồn cho nó. Tuy nhiên, nếu bạn muốn xem nó khởi động (và tôi chắc chắn là vậy), bạn phải kết nối cổng nối tiếp của bảng WRAP với một máy tính khác bằng cáp modem NULL DB9 (cái) -to-DB9 (cái) (còn gọi là như một cáp Laplink).
Những thứ này vẫn có thể được mua, mặc dù chúng thường là một mặt hàng đặt hàng đặc biệt. Khi bạn đã kết nối cáp modem NULL ở cả hai đầu, bạn chạy chương trình giả lập đầu cuối chẳng hạn như (trên Winblows) TuTTY (tốt hơn NHIỀU so với Hyperterminal) hoặc minicom (trên Linux). Các cài đặt chính xác là:
tốc độ truyền: 38400 (hoặc bất kỳ bảng WRAP nào được cấu hình)
bit dữ liệu: 8
chẵn lẻ: không có
bit dừng: 1
kiểm soát dòng chảy: XON / XOFF
Đây là khoảnh khắc mà chúng tôi đã chờ đợi! Trong trường hợp của tôi, nó đã khởi động ngay và thưởng cho tôi một lời nhắc đăng nhập:
Thử nghiệm Debian GNU / Linux / bọc không ổn định ttyS0
bọc đăng nhập:
Lần đầu tiên bạn đăng nhập không có mật khẩu root, vì vậy bạn sẽ nhận được lời nhắc root chỉ bằng cách gõ “root”.
Cấu hình (Sau khởi động)
Khởi động WRAP từ Microdrive chỉ là bước khởi đầu. Có vô số cấu hình còn lại để làm.
Cơ quan giám sát Daemon
Có một số điều cần ghi nhớ ở đây. Đầu tiên, nếu bạn đặt dòng wd1100 vào / etc / modules, bạn PHẢI chạy trình nền cơ quan giám sát, nếu không mô-đun wd1100 sẽ khởi động lại hệ thống của bạn sau không quá 30 giây! Vì vậy, hãy cẩn thận về việc kích hoạt mô-đun nhân wd1100.
Nếu bạn kích hoạt nó (sử dụng các thông số được đưa ra ở trên), tất cả những gì bạn phải làm là “apt-get install watchdog” trong khi Microdrive vẫn ở trong máy cài đặt (trước khi bạn khởi động WRAP) và sẽ không có vấn đề gì. Trình nền cơ quan giám sát được thiết lập để tự động ghi vào / dev / watchdog cứ sau 10 giây, trong khi mô-đun wd1100 chỉ khởi động lại nếu / dev / watchdog KHÔNG được ghi vào trong 30 giây trở lên. Vì vậy, bạn an toàn. Bạn có thể điều chỉnh “khoảng thời gian” trong /etc/watchdog.conf thành 15 giây nếu bạn muốn.
Một điều khác cần xem xét là tại thời điểm nào trong quá trình khởi động là trình nền cơ quan giám sát bắt đầu. Trên hệ thống của tôi, đó là điều cuối cùng để bắt đầu. Điều đó có nghĩa là nếu bất kỳ mục khởi động nào khác bị trì hoãn hoặc hết thời gian, mô-đun wd1100 sẽ chạy nhưng trình nền cơ quan giám sát sẽ không khởi động kịp thời để ngăn nó khởi động lại hệ thống. Vì vậy, trên hệ thống của tôi, tôi đã di chuyển khởi động cơ quan giám sát đến điểm trước đó trong quá trình khởi động. Tôi muốn đảm bảo rằng nó được khởi động trước ntpdate, điều này dễ bị trễ vì nó kết nối với máy chủ Internet để lấy thời gian hiện tại.
Mạng
Định cấu hình mạng nằm ngoài phạm vi của tài liệu này. Điều tối thiểu bạn cần là thiết lập giao diện IP cố định trong / etc / network / interface và con trỏ đến máy chủ định danh trong /etc/resolv.conf. Ngoài ra, bạn cũng nên thiết lập / etc / hostname và / etc / hosts (nếu bạn có các máy IP cố định khác trên mạng của mình, bạn có thể đặt địa chỉ IP của chúng vào / etc / hosts và ánh xạ địa chỉ thành những tên có thể đọc được của con người chẳng hạn như “daisy” hoặc “patty”).
Telnet / ssh
Nếu bạn đang sử dụng Hyperterminal để giao tiếp với WRAP, bạn sẽ sớm sử dụng PuTTY thay thế. Để điều đó hoạt động, bạn cần thiết lập telnet (cảnh báo bảo mật bắt buộc: telnet không an toàn – mật khẩu không được mã hóa, về mặt lý thuyết ai đó có thể lấy được mật khẩu của bạn bằng cách nghe trên cổng telnet) hoặc ssh. Tôi cần một giải pháp nhanh chóng và bẩn thỉu, vì vậy tôi đã làm telnet. Đầu tiên, thêm dòng sau vào /etc/inetd.conf:
#: TIÊU CHUẨN: Đây là những dịch vụ tiêu chuẩn. luồng telnet tcp bây giờ truy cập telnetd.telnetd / usr / sbin / tcpd /usr/sbin/in.telnetd
Sau đó, cài đặt gói telnetd bằng cách sử dụng “apt-get install telnetd” và chạy máy chủ siêu cấp inetd (“/etc/init.d/openbsd-inetd start” trong Debian “sid”). Thiết lập ssh trên sid thậm chí còn dễ dàng hơn. Tât cả nhưng điêu bạn phải lam la:
apt-get install openssh-server
Nó chiếm 2 MB dung lượng ổ đĩa nhưng nếu thậm chí có khả năng từ xa ai đó từ bên ngoài có thể kết nối với cổng telnet của máy tính của bạn, thì, tôi sẽ để bạn quyết định cái nào tốt hơn.
Tuy nhiên, trước khi có thể sử dụng telnet hoặc ssh, bạn phải thiết lập tài khoản người dùng thông qua “adduser”. Bạn cũng nên đặt mật khẩu gốc thông qua “passwd”.
Từ đây, chỉ cần khởi động PuTTY và chọn telnet hoặc SSH. Rõ ràng, bạn phải có thể xem WRAP từ hộp Winblows của mình. Nếu bạn đã bật TCP / IP và hộp WRAP và Winblows nằm trên cùng một mạng con (tôi sử dụng 192.168.0.0/24, WRAP là 192.168.0.7 và hộp Winblows là 192.168.0.5 – tất cả đều là địa chỉ IP cố định, DHCP không được sử dụng), sau đó chỉ cần nhập địa chỉ IP của WRAP và nó sẽ hoạt động.
exim4
Sử dụng lệnh “dpkg-recfigure exim4-config” để thiết lập.
ntpdate
Vì WRAP không có pin nên bạn sẽ mất thời gian cài đặt mỗi khi khởi động lại. Để đảm bảo rằng WRAP biết bây giờ là mấy giờ và giả sử bạn có kết nối Internet “luôn bật”, bạn có thể chỉ cần cài đặt gói ntpdate. Thao tác này sẽ tự động tham khảo bộ đếm thời gian và đặt đồng hồ hệ thống của bạn khi khởi động.
Máy khách NFS
Ngay từ đầu, tôi đã có nhu cầu truy cập các tệp trong hộp linux của mình từ WRAP. Hộp linux đang chạy máy chủ hạt nhân NFS phiên bản 2. Để có được WRAP để truy cập nó, tôi đã làm như sau:
apt-get install portmap
apt-get install nfs-common
Về phía MÁY CHỦ, tôi thiết lập một tệp / etc / export như sau:
/ home / livingston quấn (rw)
(bọc được thiết lập trong / etc / hosts để trỏ đến hộp WRAP)
Trên WRAP, tôi đã làm điều này:
mount -o nfsvers=2,rw f216:/home/livingston /mnt
(f216 là máy chủ.) Để biết thêm thông tin chi tiết, hãy tham khảo NFS-HOWTO.
Thủ thuật WRAP gọn gàng
Để biết nhiệt độ hệ thống hiện tại:
cat /sys/bus/i2c/devices/0-0048/temp1_input
(nhân kết quả với 1000 để được độ C). Dưới đây là một tập lệnh bash nhỏ sẽ cung cấp đầu ra thân thiện hơn với người dùng (yêu cầu “bc”, trước tiên hãy thực hiện “apt-get install bc”):
#! / bin / sh
t = `cat / sys / bus / i2c / devices / 0-0048 / temp1_input`
t2 = `echo scale = 1 ; $ t / 1000 | bc -l`
echo "Nhiệt độ hệ thống:" $ t2 "độ C"