'임베디드'에 해당되는 글 112건

  1. 2011.06.09 [s3c6410] x264 porting
  2. 2011.06.03 [s3c6410] usb disk automount rules
  3. 2011.04.28 [s3c6410] mplayer 포팅
  4. 2011.04.27 [s3c6410] Keypad device driver 포팅
  5. 2011.04.25 [s3c6410] linux kernel bootloaod 만들기
  6. 2011.04.22 [s3c6410] ez-s3c6410 bootloader logo 설정
  7. 2011.04.01 [s3c6410] falinux ez-s3c6410 자동 로그인
  8. 2011.03.25 [android] mang64 ramdisk boot argument(u-boot)
  9. 2011.03.25 커널 메세지 출력하지 않기
  10. 2011.03.25 [android] 화면에 fps 수치 표시하기

[s3c6410] x264 porting

CC=arm-generic-linux-gnueabi-gcc ./configure --prefix=/usr/arm-generic-linux-gnueabi --disable-gpac --enable-static  --enable-strip --cross-prefix=arm-generic-linux-gnueabi- --host=arm-generic-linux-gnueabi
make && make install

'임베디드 > S3C6410' 카테고리의 다른 글

[s3c6410] glib-2.2 porting 중 에러 대처  (0) 2011.06.09
[s3c6410] ffmpeg porting  (0) 2011.06.09
[s3c6410] usb disk automount rules  (0) 2011.06.03
[s3c6410] mplayer 포팅  (0) 2011.04.28
[s3c6410] Keypad device driver 포팅  (0) 2011.04.27

[s3c6410] usb disk automount rules

▶ 11-usb_storage_automount.rules
KERNEL!="ub[a-z][0-9]",GOTO="local_rules_end"

# Global mount options
ACTION=="add",ENV{mount_options}="relatime,users"
# filesystem specific options
ACTION=="add", PROGRAM=="/lib/udev/vol_id -t %N",
RESULT=="vfat|ntfs",
ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"

ACTION=="add",RUN+="/bin/mount -o $env{mount_options} /dev/%k /mnt/usb"
ACTION=="remove",RUN+="/bin/umount -l /mnt/usb"

LABEL="local_rules_end"

위 룰 스크립트를 /etc/udev/rules.d에 저장시키고,
/etc/udev/rules.d/udev.rules 파일 내에 SUBSYSTEM이 "block"인 경우 실행하는 스크립트가 제대로 지정되어 있는지 확인한다.

# Media automounting
#SUBSYSTEM=="block", ACTION=="add"    RUN+="/etc/udev/scripts/mount.sh"
#SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
SUBSYSTEM=="block", ACTION=="add"    RUN+="/etc/udev/rules.d/11-usb_storage_automount.rules"
SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/rules.d/11-usb_storage_automount.rules"



* 내용 추가 - 2014/09/03
udev가 무겁기 때문에 eudev 프로젝트가 생기게 되었다.

eudev는 udev에서 파생 된 만큼 udev에서 사용하는 rule을 적용 시킬 수 있다.

eudev을 사용할 때 usb memory을 자동 마운트/언마운트 하는 rule이다.

** 해당 내용을 " /etc/udev/rules.d/11-usb_storage_automount.rules" 에 저장한 후에, "udevadm control --reload" 명령으로 rule을 다시 읽도록 한다.

KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"

 

# Import FS infos

IMPORT{program}="/sbin/blkid -o udev -p %N"

 

# Get a label if present, otherwise specify one

ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"

ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

 

# Global mount options

ACTION=="add", ENV{mount_options}="relatime"

 

# Filesystem-specific mount options

ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"

 

# Mount the device

ACTION=="add", RUN+="/bin/mkdir -p /mnt/usbstick", RUN+="/bin/mount -o $env{mount_options} /dev/%k /mnt/usbstick"

 

# clean up after removal

ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /mnt/usbstick"

 

# exit

LABEL="media_by_label_auto_mount_end"


'임베디드 > S3C6410' 카테고리의 다른 글

[s3c6410] ffmpeg porting  (0) 2011.06.09
[s3c6410] x264 porting  (0) 2011.06.09
[s3c6410] mplayer 포팅  (0) 2011.04.28
[s3c6410] Keypad device driver 포팅  (0) 2011.04.27
[s3c6410] linux kernel bootloaod 만들기  (0) 2011.04.25

[s3c6410] mplayer 포팅

Version : Mplayer-1.0rc4
ToolChain Version : arm-generic-linux-gnueabi-gcc 4.3.2
Configure options :
./configure --cc=arm-generic-linux-gnueabi-gcc --host-cc=gcc --target=arm-generic-linux-gnueabi --enable-static --enable-fbdev --disable-mencoder

사전에 termcap-2.0.8을 포팅해야 한다.

./configure --cc=arm-generic-linux-gnueabi-gcc --host-cc=gcc --target=arm-generic-linux-gnueabi --enable-static --enable-fbdev --disable-mencoder --enable-armv5te --codecsdir=/usr/arm-generic-linux-gnueabi/lib/codecs

[s3c6410] Keypad device driver 포팅

기존 falinux linux kernel에는 keypad 드라이버가 제거되어 있다.
삼성에서 만든 keypad 드라이버를 구해서 커널 소스에 포함 시킨 후 keypad device에서 사용하는 변수들을 소스 파일들에 포함 시켜 주면 된다.
포함 시켜줘야할 변수들
  • arch/arm/plat-s3c64xx/devs.c
static struct resource s3c_keypad_resource[] = {
    [0] = {
         .start = S3C_PA_KEYPAD,
         .end  = S3C_PA_KEYPAD+ S3C_SZ_KEYPAD - 1,
         .flags = IORESOURCE_MEM,
    },
    [1] = {
        .start = IRQ_KEYPAD,
        .end  = IRQ_KEYPAD,
        .flags = IORESOURCE_IRQ,
    }
};

struct platform_device s3c_device_keypad = {
    .name                = "s3c-keypad",
    .id                     = -1,
    .num_resources    = ARRAY_SIZE(s3c_keypad_resource),
    .resource            = s3c_keypad_resource,
};
EXPORT_SYMBOL(s3c_device_keypad);
  • arch/arm/mach-s3c6410/mach-ezs3c6410.c
static struct platform_device *ezs3c6410_devices[] __initdata = {
                                   :
                                   :
    &s3c_device_keypad,
                                   :
                                   :
};
  • arch/arm/plat-s3c/include/plat/devs.h
                                  :
extern struct platform_device s3c_device_usbgadget;
extern struct platform_device s3c_device_keypad;
                                  :

Kconfig, Makefile에 keypad관련 내용을 추가하고 make menuconfig을 이용해서 선택한 후에 컴파일 하면 된다.




[s3c6410] linux kernel bootloaod 만들기

  • 필요한 패키지
    • ubuntu : netpbm
  • 커널 소스 수정
    • drivers/video/logo/Kconfig
      • 수정 내용
config LOGO_MULTIPAD_CLUT224
    bool "INFOCRYPT MULTPAD 224-color Linux logo"
    default y

    • drivers/video/logo/Makefile
obj-$(CONFIG_LOGO_MULTIPAD_CLUT224)  += logo_multipad_clut224.o

    • drivers/video/logo/logo.c
                                              :
extern const struct linux_logo logo_multipad_clut224;
                                              :
#ifdef CONFIG_LOGO_MULTIPAD_CLUT224
    logo = &logo_multipad_clut224;
#endif

  • make menuconfig 에서 추가한 로고 선택
  • 이미지 파일을 ppm(pnm)파일로 변환
    • 여기서는 gif 파일을 ppm 파일로 변환하는 걸로 설명
      • giftopnm image.gif | pnmtoplainpnm > image.ppm
      • pnmquant -fs 223 image.ppm > image_256.ppm
      • pnmnoraw image_256.ppm > logo_multipad_clut224.ppm
  • 마지막으로 커널을 컴파일하고 타켓보드에 저장하면 된다.

[s3c6410] ez-s3c6410 bootloader logo 설정

ez-s3c6410 보드 부트로더에 로고 설정하기
bootloader 설정에 들어가서 KCMD5 번에 로고 사용을 알려주는 환경설정값을 입력해야 한다.
반드시 KCMD5번에 입력해야 제대로 적용이 된다.
설정값은 LCD 해상도에 따라 틀린데 기본적으로 붙어있는 480x272 LCD일 경우 아래와 같이 설정한다.
video=ezfb:panel:1

마지막에 있는 1이  해상도를 알려주는 값이다.

다음으로, 설정에서 9번 항목인 "logo image file name"값을 설정한다.
부트로더에서 사용할 로고 파일은 24bit bitmap으로 되어 있어야 한다.

이렇게 설정값을 입력한 다음에 'tfl' 또는 'zfl'을 이용해서 logo 파일을 다운로드 받아 flash 저장하면 로고
설정이 끝나게 된다.

[s3c6410] falinux ez-s3c6410 자동 로그인

1. 프로그램 작성
falogin.c
#include <unistd.h>

int main()
{
execlp("login","login","-f","root",0);
retur 0;
}

2. falogin 을 램디스크 /sbin 디렉토리에 복사
3. /etc/inittab 스크립트 수정
T0:12345:respawn:/sbin/getty -L ttySAC0 115200 vt100
                                 ▼
T0:12345:respawn:/sbin/getty -n -l /sbin/falogin -L ttySAC0 115200 vt100

4. 타켓보드에 램디스크를 업데이트하고 확인

[android] mang64 ramdisk boot argument(u-boot)

Mango64 ramdisk nfs boot (u-boot argument)


setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.10.101:/home/shellbt/source/ramdisks/mango64_rootfs ip=192.168.10.104:192.168.10.101:192.168.10.1:255.255.255.0::eth0:off console=ttySAC1,115200n81 ethaddr=00:40:5c:26:0a:5c'

nand read 0x50008000 0x40000 0x300000
bootm 0x50008000

커널 메세지 출력하지 않기

부트 옵션에 'quiet'을 넣어주면 콘솔로 커널 메세지가 나가지 않게 된다.

[android] 화면에 fps 수치 표시하기

/frameworks/base/core/Java/android/view/ViewRoot.java 에서 SHOW_FPS값을 true로 변경하면 왼쪽아래 화면 구석에 숫자로 표시된다.
prev 1 ··· 3 4 5 6 7 8 9 ··· 12 next