Installing Debian 7 (Wheezy) on Intel SS4000-E

Debian 7 Wheezy 까지 Intel NAS Storage인 SS4000-E를 지원해 준다.
본 글은 SS4000-E에 Wheezy를 설치하는 방법이다.

1. Cross cable wiring 연결

3가닥의 cable이 필요. ( 폐 computer의 power cable, led cable을 잘라서 사용. )
아래와 같이 PC serial port와 SS4000-E dl-10 단자와 serial corss cable 연결.
PC(DB9) <-> SS4000-E(DL-10)
     3     <->    3
     2     <->    5
     5     <->    9

2. PC 에서 SS4000-e 으로 Serial 접속

윈도우용 teraterm을 사용해 serial 접속하는것을 추천한다.
설정에서 speed 115200로 수정, 나머지는 기본값 사용.

3. Wheezy 설치 Image files 구하기

ftp://ftp.kr.debian.org/debian-archive/debian/dists/wheezy/main/installer-armel/20130613+deb7u3+b2/images/iop32x/netboot/ss4000e

여기서 initrd.gz와 zImage를 download 받는다.

debian 설치시 archive 위치는 아래와 같이 지정해 줘야만 한다.
ftp://ftp.kr.debian.org/debian-archive/debian/

4. RedBoot 진입

SS4000-E의 전원을 on 하자마자 Ctrl-C를 누르면
RedBoot> 가 나온다.

5. Debian을 위한 RedBoot 설정 변경

아래를 정확히 다 입력한다.
RedBoot> fconfig boot_script_data
fis load ramdisk.gz
fis load zImage
exec -c "console=ttyS0,115200 mem=256M" -r 0x01800000

다 입력하고 나면 
Update RedBoot non-volatile configuration - continue (y/n)? y 쳐준다.

6. upload 설치 Image files

RedBoot> 에서 아래와 같이 치고 아래 file을 upload한다.

RedBoot> load -v -r -b 0x01800000 -m ymodem ramdisk.gz

teraterm에서 ymodem으로 initrd.gz 전송

RedBoot> load -v -r -b 0x01008000 -m ymodem zImage

teraterm에서 ymodem으로 zImage 전송

exec -c "console=ttyS0,115200 mem=256M" -r 0x01800000 -s 0x0046f490
( Wheezy에서는 -s parameter가 필요하다. initrd.gz file size - 16진수 )

여기까지 성공하면, booting 되면서, Debian 설치가 진행된다.

7. Debian 설치

설치과정은 pc에 설치하는것과 똑같다.
Debian 저장소를 아래 주소로 적어 줘야 한다.
ftp://ftp.kr.debian.org/debian-archive/debian/


======== Fan, Power Button, LEDs 제어 ======

8. Fan speed control

w83792d module을 load해야 한다.
modprobe w83792d
/etc/modules 에 w83792d 추가

그리고 아래와 같이 입력해준다.
echo 0 > /sys/devices/platform/IOP3xx-I2C.0/i2c-0/0-002d/pwm1_mode
0 -> variable fan speed
1 -> 2-stage fan speed

- fixed fan speed control -
echo 112 > /sys/devices/platform/IOP3xx-I2C.0/i2c-0/0-002d/pwm1
적당한 숫자를 적어, Fan speed를 control 한다.

- fancontrol 설치 -
auto fan speed control, 하지만 cpu가 뜨겁지 않아, 이 기능은 사실 필요없다. 
하드를 식힐 정도의 값을 직접 적는것으로 충분, 아래 내용은 건너뛰어도 된다.

aptitude install fancontrol

(/etc/fancontrol file을 만드는 pwmconfig 명령에 error가 있다. 아래와 같이 file을 직접 수정해야함 )

/etc/fancontrol
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=30
DEVPATH=hwmon0=devices/platform/IOP3xx-I2C.0/i2c-0/0-002d
DEVNAME=hwmon0=w83792d
FCTEMPS=hwmon0/device/pwm1=hwmon0/device/temp1_input
FCFANS=hwmon0/device/pwm1=hwmon0/device/fan1_input
MINTEMP=hwmon0/device/pwm1=30
MAXTEMP=hwmon0/device/pwm1=65
MINSTART=hwmon0/device/pwm1=195
MINSTOP=hwmon0/device/pwm1=180
숫자는 적당히 수정.

설정파일 적용 재시작
/etc/init.d/fancontrol restart

- lm-sensors 설치 -
sensors 명령으로 cpu온도를 볼수 있다.
aptitude install lm-sensors

설정 file 수정
/etc/sensors3.conf
chip "w83792d-*"
    set fan1_div 4
    ignore fan2
    ignore fan3
    ignore fan4
    ignore fan5
    label fan1 "Case Fan"

fan speed가 표시안되거나, pwmconfig 명령에 error 가 있으면 lm-sensors를 compile 하면 정상 작동한다.

apt-get install build-essential bison flex
apt-get source lm-sensors
make all
make install

9. Power Button, LEDs control

Power Button과 LEDs를 위해선 kernel patch와 kernel compile이 필요하다.
아래 패치된 linux-image를 링크해 두었다.

- kernel patch -

http://git.rtp-net.org/?p=ss4000e.git;a=summary
여기서 아래 patch files를 가져와 source directory와 line number를 수정후 patch 해야 한다.

f75111.patch
gpiolib_regs_show.patch
add_f75111_pdata.patch
em7210_add_missing_leds.patch

em7210_add_gpio_keys.patch
    이 patch는 wheezy에서 아래처럼 .poll_interval 을 추가해야 한다.
    >        .buttons = em7210_buttons,
    >        .nbuttons = ARRAY_SIZE(em7210_buttons),
    .poll_interval = 100,

- make menuconfig -

/boot/config-3.2.0.4-iop32x 을 /usr/src/linux-source-3.2/.config 로 복사후
make menuconfig 에서 아래를 선택해 준다.

Device Drivers > GPIO Support > Fintec F75111 chip > [y]
Device Drivers > Input device support > Keyboards > Polled GPIO buttons > [m]
Device Drivers
  > LED Support > LED Class Support > [y]
  > LED Support > LED Support for GPIO connected LEDs > [y]

- kernel compile -


- kernel 설치 -

dpkg -i linux-image-3.2.78-iop32x_1.ss4000e_armel.deb

kernel compile 할때 -iop32x 를 덧붙이지 않으면 flash-kernel 이 실행안된다.
그럴땐 /boot 에 있는 vmlinuz-3.2.78 와 initrd.img-3.2.78 두 파일의 파일명 끝에 -iop32x를 덧붙인후 flash-kernel 명령을 실행하면 된다.

reboot 하면 새로운 kernel로 booting된다.

- Power Button 작동과 acpid 설치 -

acpid가 설치되야 power button이 작동한다.
aptitude install acpid

- Turn LEDs on/off -

LED는 아래와 같이 on/off 한다. 
1: on ( HDD 작동시 깜빡인다. )
0: off

echo 1 > /sys/class/leds/HD1:green/brightness
echo 0 > /sys/class/leds/HD1:green/brightness
echo 1 > /sys/class/leds/HD1:amber/brightness
echo 0 > /sys/class/leds/HD1:amber/brightness

echo 1 > /sys/class/leds/status:green/brightness
echo 0 > /sys/class/leds/status:green/brightness

echo 1 > /sys/class/leds/HD:amber/brightness
echo 0 > /sys/class/leds/HD:amber/brightness

- /etc/rc.local 수정 -

booting시 HDD가 삽입된 slot의 LED를 키고, Fan speed도 지정한다.

/etc/rc.local
echo 0 > /sys/devices/platform/IOP3xx-I2C.0/i2c-0/0-002d/pwm_mode
echo 96 > /sys/devices/platform/IOP3xx-I2C.0/i2c-0/0-002d/pwm1

        if [ -L /sys/class/scsi_device/0:0:0:0 ]
           then
               echo 1 > /sys/class/leds/HD1:green/brightness
           else
               echo 0 > /sys/class/leds/HD1:green/brightness
        fi

        if [ -L /sys/class/scsi_device/1:0:0:0 ]
           then
               echo 1 > /sys/class/leds/HD2:green/brightness
           else
               echo 0 > /sys/class/leds/HD2:green/brightness
        fi

        if [ -L /sys/class/scsi_device/2:0:0:0 ]
           then
               echo 1 > /sys/class/leds/HD3:green/brightness
           else
               echo 0 > /sys/class/leds/HD3:green/brightness
        fi

        if [ -L /sys/class/scsi_device/3:0:0:0 ]
           then
               echo 1 > /sys/class/leds/HD4:green/brightness
           else
               echo 0 > /sys/class/leds/HD4:green/brightness
        fi

- booting 과정 LED로 알려주기 -

kernel이 load된 직후 status LED를 off한다.
/etc/init.d/rcS
echo 0 > /sys/class/leds/status:green/brightness

booting 과정이 다 끝나면 status LED를 on한다.
/etc/rc.local
echo 1 > /sys/class/leds/status:green/brightness

- Raid가 깨졌을때 LED로 알려주기 -

/etc/mdadm/mdadm.conf
PROGRAM /etc/mdadm/leds

/etc/mdadm/leds
#!/bin/bash
echo 1 > /sys/class/leds/HD:amber/brightness

chmod 700 leds

댓글

이 블로그의 인기 게시물

미세먼지 발생원인

디젤 경유차는 왜 질소산화물을 뿜어내는가?

미세먼지 오존 온난화 주범 디젤 경유차

초미세먼지 국내발생 국외유입 구분법

유로6가 엉터리 인증방식인 이유

한글의 위대함, 영어발음을 훈민정음으로 표기하자

2018년 초미세먼지 국내발생 국외유입 분석

미세먼지 가짜뉴스들

2019년 초미세먼지 국내발생 국외유입 분석

건강에 좋은 식용유를 알아보자.