'Linux'에 해당되는 글 5건

  1. 2022.02.15 i.mx8 yocto linux 에서 MAC 주소를 설정하는 방법 1 (uboot)
  2. 2018.04.28 When gnu screen is used in serial console, adjust windows size
  3. 2018.04.01 validate ip address in bash
  4. 2010.05.27 Linux에서 NTFS 파티션 크기를 변경하기 (작게 혹은 크기)
  5. 2009.02.03 How to install Fedora 10 without CD / DVD or any optical media
2022. 2. 15. 11:49

i.mx8 yocto linux 에서 MAC 주소를 설정하는 방법 1 (uboot)

워낙 간단한 것이라서 설명할 것도 없겠지만, h/w적으로 MAC rom 이 없거나, u-boot에서 MAC을 설정해 놓지 않으면,

보통 kernel에서 random 하게 MAC 주소를 만들어서 ethernet device를 구동하게 된다.

이렇게 되면, DHCP를 할 때, 매번 IP 주소가 변경되어, 여간 불편한 것이 아니다.

 

이를 피하려면, u-boot 에 MAC 주소를 설정하면 된다. 설정 방법은,

u-boot> setenv ethaddr "nn:nn:nn:nn:nn:nn"

u-boot> saveenv

이렇게 ethaddr를 설정하면, 커널에서 uboot 의 ethaddr 을 읽어서 ethernet device를 구동한다.

커널에서는 임의의 명령으로 다시 변경할 수도 있다.

간단한 것인데도, 찾으려면 수고스러움이 있어서 정리해서 올린다.

 

혹시 다른 사항이 필요하면, 여기를 보는 것도 좋겠다. (kernel 구성 관련)

https://community.nxp.com/t5/i-MX-Processors/How-to-disable-random-MAC-address-generation-in-Kernel/td-p/802685

 

How to disable random MAC address generation in Kernel

Hi, We want to disable random MAC address generation for Ethernet in i.MX6 BSP in our release build so that IEEE allotted MAC number is programmed without fail during product manufacturing. Usually MAC address is programmed in U-boot environment variable "

community.nxp.com

 

2018. 4. 28. 10:19

When gnu screen is used in serial console, adjust windows size

serial console을 사용할 때, screen에서 화면 크기 적용


터미널 에뮬레이터를 사용해서, 원격 접속해서 사용할 때, screen 프로그램을 사용하면 편리하다.

특히, serial console 을 사용할 때 screen을 사용한다면 더욱 더 큰 힘이 된다.

그런데, 에뮬레이터의 창의 크기를 바꾸었는데, screen에서 이를 인식하지 못하였다...난감.

ssh 나 telnet을 사용할 때는 자동으로 인식하였는데....

찾아보았는데,,, 이런 방법이 있다고 한다.

https://cafbit.com/post/terminal_window_size_detection_over/

대단하다. 어찌알고,,,,

마지막 문구에 힌트를 얻어서 한가지 더 시도해 보았다.... 정말 간단하게 해결되었다.

screen을 수행하기 전에 $ resize 명령을 수행하면 적용이 되었다.


root@linux ~$ resize

COLUMNS=160;LINES=52;export COLUMNS LINES;

root@linux ~$ screen


두개의 변수가 필요했나 보다...

난 여기까지 오는데, 무려 6개월 걸렸다.


다른 분들은 도움이 되시길..



2018. 4. 1. 21:13

validate ip address in bash


Linux의 bash shell script을 작성하는데, ip addresss를 입력받는 부분을 작성 중이다.

입력 받은 주소의 적합성을 검사하려고 하는데, 생각보다 간단하지 않았다.


최종 완성된 코드를 올리니, 참고하시라... (귀찮아서 설명을 하지 않음을 이해해 주세요)

#!/bin/bash


function is_number()

{

local src=$1

local stat=1

tdst=`expr $src + 1` 2> /dev/null

stat=$?

return $stat

}


function validate_ip()

{

    local  lip=$1

    local  stat=255

local renumexp='^[0-9]+$'

    if [[ $lip != ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then

        OIFS=$IFS

        IFS='.'

        sip=($lip)

        IFS=$OIFS


printf "0: %s\n" ${sip[0]}

printf "1: %s\n" ${sip[1]}

printf "2: %s\n" ${sip[2]}

printf "3: %s\n" ${sip[3]}


stat=0


vip=${sip[0]}

if [ $stat -eq 0 ] ; then

is_number $vip 2> /dev/null

if [ $? -eq 0 ] ; then

if [[ $vip -gt 255 ]] ; then

stat=1

fi

else

# not number

stat=11

fi

fi


vip=${sip[1]}

if [ $stat -eq 0 ] ; then

is_number $vip 2> /dev/null

if [ $? -eq 0 ] ; then

if [[ $vip -gt 255 ]] ; then

stat=2

fi

else

# not number

stat=12

fi

fi


vip=${sip[2]}

if [ $stat -eq 0 ] ; then

is_number $vip 2> /dev/null

if [ $? -eq 0 ] ; then

if [[ $vip -gt 255 ]] ; then

stat=3

fi

else

# not number

stat=13

fi

fi


vip=${sip[3]}

if [ $stat -eq 0 ] ; then

is_number $vip 2> /dev/null

if [ $? -eq 0 ] ; then

if [[ $vip -gt 255 ]] ; then

stat=4

fi

else

# not number

stat=14

fi

fi

    fi

    return $stat

}



read ip


if validate_ip $ip; then

  echo "success ($ip)"

  exit 0

else

  echo "fail ($ip)"

  exit 1

fi



참고 사이트는

1. validate ip

https://unix.stackexchange.com/questions/111841/regular-expression-in-bash-to-validate-ip-address

https://stackoverflow.com/questions/13777387/check-for-ip-validity


2. check number

https://stackoverflow.com/questions/806906/how-do-i-test-if-a-variable-is-a-number-in-bash

https://www.unix.com/shell-programming-and-scripting/21668-how-check-whether-string-number-not.html


이다.


2010. 5. 27. 19:28

Linux에서 NTFS 파티션 크기를 변경하기 (작게 혹은 크기)

Ubuntu linux를 새로 설치하는 하는데, 이미 Windows가 깔려 있는 경우,

(HDD의 앞 파티션 2개가 NTFS로 되어 있음)

처음 설치 과정에서 이상하게 default로 첫번째 partition을 분할하려고 하였다.

처음에는 멋 모르고 Forward버튼을 눌렀더니, 첫번째 partition을 resize하여 줄이고, 2.5 GB 정도 빈 공간을 만들었다.

이론,

보통 하나의 HDD는 최대 4개의 기본 파티션을 만들 수 있다.

NTFS 파티션 2개가 모두 기본 파티션(primary partition)으로 되어 있기 때문에, 추가로 만들 수 있는 기본 파티션을 2개이다.

(linux는 기본적으로 root 파티션하고, swap 파티션을 만들어야 한다. 성격상 이것들을 모두 기본파티션에 놓기에)

결국 이 HDD에만 ubuntu를 설치하려고 한다면, 2.5GB 공간을 버려야 한다. (이럴수가, 아마도 버그인 듯 하다)

어쩔 수 없이 그냥 뒷 부분에 파티션을 만들어서, ubuntu를 설치하였다.

그런데, Ubuntu software 중에서 KDE partition manager라는 프로그램이 있어 이것으로 기존의 ntfs 파티션의 크기를 변경할 수 있다.

지금 작업 중인데, 시간이 무척 많이 걸린다.

그래도 혹시나, 빈 공간 있으신 분들, 시도해 보는 것도…. (resizing 도중에 computer가 꺼지면 안될 것으로 생각된다. 아마도 치명적일 듯)

사용법은 매우 간단하다.

혹시나 자투리로 짜증나 하시는 분들을 위해…

송골

2009. 2. 3. 15:22

How to install Fedora 10 without CD / DVD or any optical media

Use Case
  1. When you don't have CD / DVD drive on your system.
  2. You have Fedora DVD but your system has only a CD Drive.
  3. You don't want to waste time and resources in burning iso on optical media.
Pre-requisites
  1. You have a Fedora DVD iso or rescue cd iso.
  2. You have a Linux installation on your system.
  3. You have a partition (FAT32, ext2, ext3) which you will not format while installing the new OS.
How to proceed

Let us assume you want to install Fedora 10 on your system and you have a Linux distro already installed on your system. You have downloaded the Fedora DVD iso (Fedora-10-i386-DVD.iso). And you have a FAT32/ext2/ext3 partition /stuff/ which you will not format during installation.

Step 1 : Move the Fedora DVD iso to /stuff/ directory.

[root@saini saini]# mv Fedora-10-i386-DVD.iso /stuff/ [Enter]

Step 2 : Mount Fedora DVD iso on /mnt/

[root@saini saini]# mount /stuff/Fedora-10-i386-DVD.iso /mnt/ -ro loop [Enter] (do as root)

Step 3 : Copy the initrd.img and vmlinuz to /boot/ partition

[root@saini saini]# cd /mnt/isolinux/ [Enter]
[root@saini isolinux]# cp initrd.img vmlinuz /boot/ [Enter] (do as root)
[root@saini isolinux]# cd /mnt/ [Enter]
[root@saini mnt]# mkdir /stuff/images [Enter]
[root@saini mnt]# cp /mnt/images/install/img /stuff/images/ [Enter] (do as root)

Step 4 : Create grub entry for booting into Fedora 10

Add these lines at the end of your /boot/grub/grub.conf file.

title Fedora 10 (New installation)
    kernel /vmlinuz
    initrd /initrd.img

Step 5 : Note the device having Fedora DVD iso

[root@saini saini]# df -h [Enter]
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              15G  9.5G  4.1G  70% /
/dev/sda8             135G  116G   13G  91% /stuff
/dev/sda5             4.8G  1.2G  3.4G  26% /home
/dev/sda1              99M   12M   82M  13% /boot

In this case /dev/sda8 contains Fedora DVD iso. Note this down as you need it later.

Step 6 : Reboot

Reboot your system and boot into the Fedora 10 (New installation) grub entry.

Step 7 : Install from hard disk

While in installation wizard, select "Hard drive" as installation method and choose /dev/sda8 as it contains the Fedora DVD iso. And rest is damn easy.

Test result : Fedora 8 --> Fedora 10 upgrade

test date: 2009.02.03.
test result: OK.