Ubuntu 9.10 에서 YAFFS2 Mount 하기

리눅스 2011. 1. 2. 01:02 Posted by 동글래미
0. 커널 컴파일을 하기 위한 기본 셋팅

커널 컴파일을 위해선 다음의 package들이 필요

build-essential
kernel-package
libncurses5-dev                                    # ncurses 를 기반으로 하는 화면-menuconfig-에서 설정하기 위한 것
libgtk2.0-dev, libglib2.0-dev, libglade2-dev   # GTK 기반 화면-gconfig-에서 설정하려면 설치해야 할 것
libqt-mt-dev                                             # QT 기반 화면-xconfig-에서 설정하려면 필요한 것

[실행]
# apt-get install build-essential
# apt-get install kernel-package 
# apt-get install libncurses5-dev libgtk2.0-dev libglib2.0-dev libglade2-dev
# apt-get install libqt-mt-dev


Ubunut에는 linux-source가 default로 포함되어 있지 않으므로 linux-source도 설치
(시냅틱 패키지 관리에 가면 간단하게 설치 가능하다)

커널 소스를 다운 받으면, /usr/src/ 디렉토리 안에 저장됨
* 압축 풀고나서 /usr/src/linux-source-[kernel_version]에 들어가 menuconfig를 통해 kernel 옵션을 수정 ('3.' 에서 실행)

[실행]
# tar -xjvf linux-source-[kernel_version]


1. 서버에서 YAFFS2 다운로드





우리는 YAFFS2를 다운 받을 예정이므로
yaffs2/ 폴더에 들어 간 후 하단에 있는 Download GNU tarball 을 통해 tar 파일을 다운 받는다
다운받은 파일을 tmp 나 home 폴더 등 원하는 경로에 압축을 푼다

[실행]




2. /usr/src/linux-[version]/fs 경로에 YAFFS2 설치

YAFFS2 source를 linux-[version]에 포함시키기 위해 필요한 파일들을 /usr/src/linux-[version]에 저장한다.
이미 압축을 푼 폴더 내에 .sh 파일이 있으므로 이를 이용한다.
실행 하고 나면 자동으로 /usr/src/linux-[version]/fs/yaffs2 가 생겼음을 알 수 있다.


[실행]
# cd yaffs2
# ./patch-ker.sh                 // .sh 파일



3. make menuconfig 를 통해 config 파일 저장

(커널 메뉴 설정)
 make menuconfig 는 /usr/src/linux-[version]/ 디렉토리 안에서만 가능한 명령이다.

(각 디렉토리에 Makefile과 Kconfig가 존재한다. 이를 이용하여 menuconfig 에서의 메뉴형태를 변경할 수 있다)

/usr/src/linux-[version]/fs/yaffs2 에 존재하는 
Makefile과 Kconfig를 통해 원하는 방법으로 menuconfig를 수정 할 수 있다.



[실행]
# make menuconfig


a. File systems를 선택한다

 
b. Miscellaneous filesystems 를 선택한다


 
c. YAFFS2 file system support 를 선택한다



4. 커널 설정 저장 후 커널 컴파일


exit 버튼을 누르고 save 창이 나오면 save를 한다.
설정값이 /usr/src/linux-[version]/.config 파일에 저장된다.


[실행]
# make clean                                  
# make bzImage install                     # vmlinuz 를 /boot 에 추가
# make modules modules_install       # /lib/modules 에 커널 추가



5. 새로 만든 커널 initrd를 통해 /boot/grub에 추가

vmilnuz              # 기존의 다른 linux에서 사용되는 bzImage 와 같다. bzImage를 rename
config                 # 커널 컴파일 시 사용된 config 파일
system.map      # fatal error가 발생한 경우 recover를 위해 필요한 파일
initrd.img           # root file system을 실제로 mount 하기 위한 파일

새로 만든 커널을 부팅 시 실행 하고 싶다면 grub에 initrd를 추가해야 한다.

[실행]
# cd /lib/modules
# update-initramfs -c -k [kernel_module_directory_name] 


실행하고 나면, /boot 에 initrd.img 파일이 생성된다.

Ubuntu가 9.10로 올라가면서 grubmf grub2로 업데이트 되었기 때문에
설정파일이 /boot/grub/menu.lst 에서 /boot/grub.cfg 로 변경
grub.cfg 는 readonly 파일이기 때문에 직접 수정하면 안된다.

[실행]
# update-grub
# grep "menuentry" /boot/grub/grub.cfg 


실행하면 생성된 initrd를 메뉴에 추가한 것을 확인 할 수 있다.
새로 만든 커널을 등록해서 부팅


6. Nandsim module 추가 및 YAFFS mount

/dev 디렉토리에 mtd와 mtdblock이 존재 하지 않으면 modprobe로 mtdblock을 추가
modprobe로 nandsim도 추가 후 yaffs 마운트

[실행]
# modprobe mtdblock
# modprobe nandsim
# insmod yaffs.ko
# mkdir [마운트 할 위치]
# mount -t yaffs2 /dev/mtdblock0 [마운트 할 위치]
# cat /proc/filesystems (확인)

* modprobe를 실행했을 경우 다음과 같은 에러가 발생하면
-----------------------------------------------------------------------------------------------------------------------------------
WARNING: all config files need .conf /etc/modprobe.d/vmware-tools it will be ignored in a future release
-----------------------------------------------------------------------------------------------------------------------------------

[실행]
# sudo mv /etc/modprobe.d/vmware-tools /etc/modprobe.d/vmware-tools.conf 






Reference : http://programmerjk.springnote.com/pages/2456582?print=1
                 http://wiki.kldp.org/wiki.php/KernelModuleProgrammingGuide
                 http://www.linux.co.kr/home2/board/bbs/board.php?bo_table=lecture&sca=1&sca2=32&sca3=&wr_id=1639

ext2나 ext3를 ext4로 변환 방법

리눅스 2010. 12. 6. 12:54 Posted by 동글래미
fsck -f /dev/sdd1
tune2fs -O extents,uninit_bg,dir_index /dev/sdd1

우분투 설치후 APM 설치

리눅스 2010. 10. 13. 07:03 Posted by 동글래미


apt-get install build-essential
uname -a 확인후 
apt-get install linux-headers-2.6.28-13-server

 

/opt/install/vmware-tools-distrib/vmware-install.pl

 

apt-get install apache2;

apt-get install libapache2-mod-auth-mysql ;
apt-get install mysql-server mysql-client;
apt-get install php5-common php5 libapache2-mod-php5 php5-gd;
apt-get install php5-mysql;

 

 

1. DB 초기설정
   mysql -uroot -p암호
     create database zbxe;

     use mysql;

     insert into user(host,user,password)
     values ('localhost','zbxe',password('암호'));

     insert into db(host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv,grant_priv,references_priv,index_priv,alter_priv,create_tmp_table_priv,lock_tables_priv)
     values ('localhost','zbxe','zbxe','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

     grant all privileges on zbxe.* to zbxe@localhost
     identified by '암호' with grant option;
     flush privileges;

2. DB 복구
   mysql -uzbxe -p암호 zbxe < startpda.txt

3. zbxe계정 권한 재설정
   mysql -uroot -p암호

     grant all privileges on zbxe.* to zbxe@localhost
     identified by '암호' with grant option;
     flush privileges;

 

 

vi php.ini

memory_limit=500M

post_max_size = 500M

upload_max_filesize = 500M

mysql log 파일에서 복구하기..

리눅스 2010. 10. 11. 18:02 Posted by 동글래미
mysqladmin -u root -pakdlvhwm drop zbxe
mysqladmin -u root -pakdlvhwm create zbxe
mysql -u root -pakdlvhwm zbxe < startpda-0.sql 


/var/www/mysqllog
10월 8일 이후의 mysql-bin.* 파일들만 남겨둠

mysqlbinlog * >> 1008-1010.sql

grep -v xe_session 1008-1010.sql > 1.sql

mysql -f -u root -p < 1.sql



ERROR 1153 (08S01) at line 478: Got a packet bigger than 'max_allowed_packet' bytes


ex) mysql -uroot -p < test.sql  
    sql파일을 디비에 올리는 과정에서 생기는 오류.

원본 디비의 'max_allowed_packet' 이 대상 디비보다  크거나
sql 파일의 용량이 클경우 생기는 오류.

@@해결방법
---------------------------------------------------------------------------------
mysql> set global max_allowed_packet=1000000000;
Query OK, 0 rows affected (0.01 sec)
mysql> set global net_buffer_length=1000000; 
Query OK, 0 rows affected (0.00 sec)




proftpd utf-8 설정, 특수문자 목록 보이게

리눅스 2010. 10. 9. 01:24 Posted by 동글래미
UseEncoding                     UTF-8 UTF-8

<IfModule mod_facts.c>
FactsAdvertise off
</IfModule>

share webhard 설치방법

리눅스 2010. 9. 12. 01:26 Posted by 동글래미


## 기본설치
1. SUlinux 1.5 Server 설치
2. apmtools(sulinux에서 apm 자동설치툴)로 APM(Apache, PHP, MySQL)설치
  * ZendOtimizer 설치를 위해서 apmtools 설치전에 아래부분 수정후 설치! <-- 1.5 이전버전만 해당됨!
    # vi  /root/bin/apm/apm_install 
    # vi  /root/bin/apm/apm_phpupdate 
   위에서 php config옵션중 '--enable versioning' 부분을 삭제할것!
   삭제하지않고 apmtools 설치했을때에는 수정후 apmtools 재실행후
   'php 업데이트'를 선택하면 업데이트설치된다.
>apmtools (실행) // 약 5~10분정도 소요.

// 아래부터 웹하드용 작업 //
## webhard 용 db 생성
>mysql -u root <-- mysql 패스워드 생성전일때, 패스워드 만든후에는 mysql -u root -p 
>SET PASSWORD FOR root@localhost = PASSWORD('??????'); // root 패스워드 설정
>CREATE DATABASE webhard; // webhard용 db 생성
>show databases; (webhard DB생성된것 확인)
>flush privileges;
>quit;

# webhard 용 table DB 입력. 
위쪽 2번자료 웹하드용 DB테이블(shade_webhard.sql)을 webhard DB에 입력
>mysql -u root -p webhard < shade_webhard.sql

 - vi 로 패스워드 및 웹하드명칭을 수정후 적용할것!
>Enter password : 
메세지 없이 종료.

>mysql -u root -p 접속후 
>use webhard;
>show tables;
하면 webhard_**** 테이블들이 보임
>quit;
>service mysqld restart (또는 /etc/ini.d/mysqld restart) 재시작함.

## shade webhard 압축해제후 수정
/웹서비스디렉토리(www 또는 html 등등)/shade_webhard 로 복사
shade_webhard/include/dbconnect.php 에서
$db_host = "localhost"; // mysql host
$db_user = "root"; // mysql username
$db_pass = "패스워드"; // mysql password
$db_name = "webhard"; // mysql db name
수정/저장후 종료

shade_webhard/include/config.php 에서
$Conf[web_url]    = "http://(ip주소 또는 도메인)/shade_webhard";
$Conf[web_path] = "/shade_webhard";
$Conf[dir_doc]    = "/???/shade_webhard"; (shade_webhard 소스가 있는 실제경로)
$Conf[dir_home] = "/public_webhard";  (webhard용 데이타가 저장될 실제경로)
수정/저장후 종료

** 위의 dir_home 의 /public_webhard 퍼미션조정해줄것!!!

>mkdir /public_webhard

>chmod 777 /public_webhard

** php.ini 수정(기본업로드 2M제한되어있는것 변경) --- 중요!!!
>vi /etc/local/php.ini
:256 (256줄로 이동 memory_limit=8M 를 업해줘야 좋다고해서 32M로 변경)
:419 (419줄로 이동 post_max_size=8M 를 변경~  1024M / 2048M /... 등등)
:524 (524줄로 이동 upload_max_filesize = 2M 를  변경 ~ 1024M / 2048M/ ... 등등)

** httpd.conf 수정(웹하드 사용자등록후 폴더생성/업로드/삭제 관련 소유권문제)
일단 root말고 일반사용자 등록한다.
>adduser 사용자
>passwd 사용자 (패스워드 입력후)
>vi /etc/passwd 로 사용자가 등록되었는지 확인
>vi /etc/httpd.conf
:268 (268줄로 이동 User nobody 를 'User 사용자' 등록해준 것으로 변경)
:269 (269줄로 이동 Group ????  를 'Group 사용자' 로 변경)
>service httpd restart (또는 /etc/ini.d/httpd restart) 로 httpd 재시작.

## 웹하드 작동테스트
http://(ip주소 생략)/shade_webhard/backoffice (관리자 모드)
; admin / shade 로그인
; 웹하드사용자등록 및 환경설정
http://(ip주소 생략)/shade_webhard (실사용자 모드)
; 사용자로그인
; 폴더 만들기, (용량별)업로드테스트, 업로드후 삭제 이상없나 확인!
; 이상없으면 잘 사용하시고... 이상있으면 다시 윗글 잘 보시고 빠진것 없나 확인하세요~

apt-get을 proxy 서버를 통해서 사용하기

리눅스 2009. 7. 20. 18:00 Posted by 동글래미

Edit your /etc/bash.bashrc file as root.

Put these line at the end of your /etc/bash.bashrc file :

export http_proxy=http://username:password@proxyserver.net:port/
export ftp_proxy=http://username:password@proxyserver.netport/

우분투 X윈도우 부팅 설정

리눅스 2009. 4. 26. 03:41 Posted by 동글래미
X윈도우 설치

apt-get install ubuntu-desktop

1. 우분투의 X윈도우 시작, 중지, 재시작

/etc/init.d/gdm start, stop, restart

2. 우분투 부팅시 X윈도우 대신 텍스트로그인으로 시작하도록 설정

update-rc.d -f gdm remove

3. 우분투 부팅시 X윈도우 로그인으로 시작하도록 설정

update-rc.d gdm defaults

우분투 APM 설치 단계

리눅스 2009. 3. 18. 15:19 Posted by 동글래미



  
$sudo apt-get install apache2                Apache 설치

   $sudo apt-get install libapache2-mod-auth-mysql        mysql 인증 모듈

   $sudo apt-get install mysql-server mysql-client         MySQL 설치
    MYSQL은 설치 후 자동으로 실행 됩니다.^-^

   $sudo apt-get install php5-common php5 libapache2-mod-php5 php5-gd      PHP5 설치

   $sudo apt-get install php5-mysql          MySQL과 php5를 연동하기 위한 모듈

   $sudo /etc/init.d/apache2 restart          아파치 웹서버를 재시작



한글 홈페이지도 인코딩

마지막 부분에 AddDefaultCharset utf-8
를 추가합니다

우분투 서버에 오라클 10g 설치 단계

리눅스 2009. 3. 5. 13:51 Posted by 동글래미

1. 오라클 10g 다운로드
http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201linx8664soft.html

2. OS 최신 업데이트
apt-get update
apt-get upgrade

3. 개발환경 구축
apt-get install build-essential
uname -a 확인후
apt-get install linux-headers-2.6.27-11-server

4. X윈도우 설치
apt-get install ubuntu-desktop

5. 오라클 복사
 1) gunzip <filename>
 2) cpio -idmv < <filename>

6. 오라클 설치시작

그룹추가
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
기본그룹은 oinstall, 포함시킬그룹은 dba
# /usr/sbin/useradd -g oinstall -G dba oracle

확인사살
# /usr/sbin/usermod -g oinstall -G dba oracle

/etc/sysctl.conf 가장 하단에 내용추가
(세마포나 공유메모리설정등)
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
 
/etc/profile에 아래 내용추가
# For Java
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:.:$PATH
 
oracle유저 디렉토리의 
.bash_profile에 oracle환경값추가
(디렉토리는 구미에 맞게 수정)
# Oracle Environment
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export ORACLE_OWNER=oracle
export ORACLE_SID=ora10
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/demo:/lib:/usr/lib
export LD_LIBRARY_PATH
export TEMPDIR=/tmp
export EDITOR=vi
#set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/JRE/bin
# Set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin
여기서 환경값 적용위해 reboot한번 시켜주십시오.

오라클유저로 Installer 실행
(터미널마다 다르지만 글씨깨지니 먼저 export LANG=c 해주기 바란다.)
./runInstaller
화면 뜨면 거짐 다 온겁니다.
GUI화면이니 경로확인하면서 next눌러주심 됩니다.
 
덧붙이자면 sid는 DB명이니 환경설정에서 줬던 ora10으로 주심됩니다.