Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kr:docs:guide-developer:the-source-code [2017/04/26 03:03] – [/target/linux/<arch_name>/modules.mk] feheadko:docs:guide-developer:the-source-code [2017/05/02 18:02] (current) – ↷ Links adapted because of a move operation tmomas
Line 1: Line 1:
-====== 새 장치 추가 ======+====== LEDE 소스 코드 ======
  
-장 좋은 방법은 새 장치 추가에 대한 최근의 커밋을 보고 변경된 파일과 변경된 사항을 확인하는 것입니다. 대부분의 파일은 능한 한 자체 설명이 가능하도록 노력하지만 대부분 열면 파일을 열면 대부분의 기능을 이해할 수 있습니다.+LEDE 프로젝트 소스 코드는 OpenWrt revision r49258로 시작합니다. 이 코드는 OpenWrt가 만든 모든 브랜와 릴리스를 포함하는 git 트리 안에 저장됩니다. 소스를 져 오는 동안 트리가 정규화되고 커미터 름과 메일 주소에 약간 변경이 되어 있을수도 있습니다.
  
-가장 중요한 파일이있는 곳의 일반적인 형태입니다:+모든 리포지토리는 다음을 통해 온라으로 탐색 할 수 있습니다:
  
-==== /target/linux/<arch_name>/base-files/etc/… ====+  - [[https://git.lede-project.org/|Gitweb]] LEDE를위한 마스터 Git 저장소 
 +  - [[https://github.com/lede-project|Github]] - 지속적으로 업데이트되는 Gitweb의 미러 
  
-이 폴더에는 펌웨어의 /etc 폴더에 통합 될 파일 및 폴더가 들어 있습니다. 
  
-하위 폴더 및 파일은 다음과 같습니다:+===== LEDE 소스 코드 저장소 =====
  
-  * **…board.d/** led 및 네트워크 인터페이스와 같은 장치 별 기본 하드웨어를 정의하는 크립트 +모든 //LEDE// 개발은 HTTP 및 HTTPS를 통해 액세스 할 수는 기본 ''%%source.git%%'' 저장소서 발생합니다:
-  * **…hotplug.d/** 장치 핫 플러깅시 자동으로 수행 할 장치 별 작업을 정의하는 스크립트 +
-  * **…init.d/** 부팅시 자동으로 행 할 device 별 작업을 정의하는 스크립트 +
-  * **…uci-defaults/** 장치 별 uci 설정 기본값을 정의하는 파일 +
-  * **…diag.sh** 각 보드의 오류 코드에 무엇이 사용되는지 정의+
  
-==== /target/linux/<arch_name>/base-files/lib/… ====+<code> 
 +git clone https://git.lede-project.org/source.git 
 +</code>
  
-이 폴더는 펌웨어의 /lib 폴더에 통합 될 파일과 폴더가 들어 있습니다.+Github서 저장소의 미러를 찾을 수 있습니다:
  
-하위 폴더 및 파일은 다음과 같습니다:+<code> 
 +git clone https://github.com/lede-project/source.git 
 +</code>
  
-  * **…<arch_name>.sh** script-safe 보드명과 사람이 읽을 수 있는 풀 보드명 +==== 일반적인 소스 구조 ====
-  * **…preinit/** common <arch_name> 선작업 시작 크립트들 +
-  * **…upgrade/** common <arch_name> 업그레이드 스크립트들+
  
-==== /target/linux/<arch_name>/base-files/sbin ====+다음은 프로젝트의 git에서 찾을 수있는 폴더입니다:
  
-이 폴더는 펌웨어의 /sbin 폴더에 통합되는 파일 및 폴더를 포함하며, 일반적으로 공통된 <arch_name> sbin 스크립트 및 도구입니다.+  * **/config** :  menuconfig의 configuration 파일들 
 +  * **/include** : makefile configuration 파일들 
 +  * **/package** : 패키지 makefile과 configuration 
 +  * **/scripts** : 빌드 프세스 전반에 사용되는 기타 스크립트 
 +  * **/target** : buildbuild로 빌드 된 imagebuilder, kernel, sdk 및 toolchain을 빌드하기위한 makefile과 configuration (makefile and configuration for building imagebuilder, kernel, sdk and the toolchain built by buildroot.) 
 +  * **/toolchain** : 툴체인 빌드를위한 makefile과 configuration 
 +  * **/tools** : 빌드 프로세스 전반에 걸쳐 사용되는 기타 도구
  
-==== /target/linux/<arch_name>/dts/ ====+===== 릴리즈 =====
  
-디바이스 리 소스 , 또는 작은 dts(dts for short).+릴리즈 생성은 많이 자동화되었습니다. 첫 번째 LEDE 릴리즈 전에 프로세의 나머지 부분도 자동화 해야합니다. 우는 커널의 MAINTAINERS 파일과 비슷한 형식의 TESTERS 파일을 개 할 것입니다. 커뮤니티 회원은 자신을 target/profile/device의 테터로 표시 할 수 있습니다. 릴리스가 생성되면 테스터는 테스트 할 이미지에 대한 요구 사항을 알리는 전자 메을 받게됩니다. 테스트 된 이미지 만 이진 릴리스에 포함되어야하지 결정해야합니다.
  
-==== /target/linux/<arch_name>/image/ ====+릴리스 조건은 아래와 같습니다:
  
-장치 별 플래시 가능 를 작성하는 데 필요한 설정. +  - 적어도 일년에 한 번상 
-==== /target/linux/<arch_name>/<board_name>/ ====+  - 유지 관리 업이트가 하나 이상 
 +  - 출시 후 1 년 이상 CVE critical ... 수정본 제공 
 +  - 유지 관리 대상 만 포함 
 +  - 테스트된 기기만  타겟에 포함 
 +  - 준비가 되어 있는 것만(Be ready when they are ready)
  
-보드별 설정.+자세한 내용은 TODO 페이지를 참조하십시오.
  
-==== /target/linux/<arch_name>/modules.mk ====+===== 스테이징 트리 =====
  
-menuconfig를 위한 Arch 전용 커널 모듈 config 파일 +git.lede-project.org에서 스테이징 트리를 만들려면 다음을 수행하십시오
-===== Patches ===== +
-The patches-* subdirectories contain the kernel patches applied for every target.\\  +
-All patches should be named 'NNN-lowercase_shortname.patch' and sorted into the following categories:+
  
-**0xx** - upstream backports\\ +<code> 
-**1xx** - code awaiting upstream merge\\ +ssh <git@git.lede-project.org> "create lede/yournick/staging"  
-**2xx** kernel build config header patches\\ +ssh <git@git.lede-project.org> "desc lede/yournick/staging Staging tree of Your Name" 
-**3xx** architecture specific patches\\ +</code>
-**4xx** - mtd related patches (subsystem and drivers)\\ +
-**5xx** - filesystem related patches\\ +
-**6xx** - generic network patches\\ +
-**7xx** - network phy driver patches\\ +
-**8xx** - other drivers\\ +
-**9xx** - uncategorized other patches\\+
  
-<WRAP center round tip 80%> +스테이징 트리를 https://git.lede-project.org 에서 볼 수있게하려면 다음을 수행하십시오:
-All patches must be written in a way that they are potentially upstreamable, meaning:+
  
-- they must contain a proper subject\\ +<code> 
-they must contain a proper commit message explaining what they change\\ +ssh <git@git.lede-project.org> "perms lede/yournick/staging + READERS gitweb" 
-- they must contain a valid Signed-off-by line\\ +</code>
-</WRAP>+
  
-===== Testing images ===== +모든 사용자가 스테이징 트리를 읽을 수 있게 하려면 다음을 수행하십시오:
-Test firmware images without writing them to flash by using ramdisk images.\\+
  
-In **make menuconfig** select **Target Images** and then you can select the **ramdisk** option.\\+<code> 
 +ssh <git@git.lede-project.org> "perms lede/yournick/staging + READERS @all " 
 +</code>
  
-This will create an image with kernel + initramfs, that will have **initramfs** in the name. The resulting image can be loaded in the device through the bootloader's tftp function and should boot to a prompt without relying on flash/filesystem support.+==== 커널 업데이트 ====
  
-===== Tips and tricks ===== +릴리즈 2 일 이내에 최신 커널이어야 한다는 것은 비실용적이며 시간을 낭비하는 것으로 입증되었습니다아래와 같은 문제가 발생했습니다.
-==== Getting a shell on the target device ==== +
-In order to collect relevant data for a port of LEDE to the device of interest one wants shell accessMost devices though do not offer a way to get a shell with telnet or ssh.+
  
-With [[https://wiki.openwrt.org/toh/netgear/telnet.console|netgear-telnetenable]] many Netgear devices can be opened up for telnet access. Also see [[https://github.com/insanid/NetgearTelnetEnable|GitHub: insanid/NetgearTelnetEnable]]. +  커널 버전의 다양화 
-When such means cannot be used, one could try to flash an image build from the sources published by the vendor with telnetd enabled.+  - 유지 보수업자에 대한 압박이 안정화되기보다는 끊임없이 업그레이드 
 +  - 릴리스 간 3-4 회 업그레이드에 막대한 수고 
 +  - kmod-* 포장을 유지하는 막대한 작업량 
 +  - 완전히 테스트되지 않았을 수도있는 커널 업그레이드
  
-With [[https://github.com/jclehner/nmrpflash|nmrpflash]] many Netgear devices can be flashed. Devices that are compatible with this tool become effectively unbrickable.+이것은 분명히 고대와 먼지가 많은 커널에 앉아있는 초대는 아닙니다불필요한 작업 부하 및 안정성 문제를 야기하지 않고 커뮤니티에 최근 커널을 제공하는 정상적인 경로를 가져야합니다.
  
-==== Collecting relevant data ==== +최대 3 개의 동시 커널 버전이 있어야합니다두 개의 동시 버전이 3개 보다 낳습니다.
-On [[https://wikidevi.com/wiki/Main_Page|WikiDevi]] lots of information can be found, e.g. the FCC ID is very useful when searching for documentation, datasheets and internal photo's (to be able to distinguish used chips without having to open the casing).+
  
-Typically one can use the following commands: +In Short - stability should be valued higher than bleeding edge, although bleeding edge is also important, but not as a trade-off to stability. 
-  dmesg                          # log buffer might be to smallsee note 1+단기에서는 안정성이 출혈 가장자리보다 높게 평가되어야하지만출혈 가장자리 또한 중요하지만 안정성과의 균형 관계는 아닙니다
-  cat /proc/cmdline + 
-  cat /proc/cpuinfo +===== 새 장치 추가 ===== 
-  cat /proc/meminfo + 
-  cat /proc/devices +**[[ko:docs:guide-developer:adding_new_device|새 장치 추가]]** 새 장치 추가에 대한 일반 정보 
-  ls /sys/devices/platform + 
-  cat /proc/mtd +===== OpenWrt 소스 코드 ===== 
-  cat /sys/class/mtd/mtd*/offset # Linux 4.1 and newer, see note 2+ 
-  ifconfig -a +우리는 원본 OpenWrt 소스 코드를 r49258 까지 사용할 수 있으며 대부분이 참조 용이며 역사적인 관심사입니다. 
-  ls /sys/class/net + 
-  brctl show +원래 OpenWrt Subversion 저장소는 여러 SVN 디렉토리와 태그를 적절한 Git 브랜치에 매핑하는 여러 Git 저장소로 나뉘어져 있습니다
-   + 
-Note 1Often the log buffer is to small and the earliest messages may be missing from the information retrieved with ''dmesg''. +<code> 
-If one build a stock image from the sources the vendor has published, a larger buffer size can be set within the kernel config+git clone https://git.lede-project.org/openwrt/source.git  
-Note 2: http://lxr.free-electrons.com/source/Documentation/ABI/testing/sysfs-class-mtd+git clone https://git.lede-project.org/openwrt/packages.git  
 +git clone https://git.lede-project.org/openwrt/feeds.git  
 +git clone https://git.lede-project.org/openwrt/docs.git 
 +</code>
  
-Another useful tool for getting information for setting LEDs might be [https://github.com/jclehner/gpiodump-mt7620|gpiodump]], a MT7620 GPIOMODE register dumper (RAMIPS). 
  
-==== Getting collected data from a device ==== 
-Sometimes no normal means such as scp or ftp are available for retrieving files from a device. Still one could use httpd and busybox its mount command to do so. How? 
-Assume the files with relevant data on the device with IP address ''192.168.0.123'' are stored under ''/tmp'' and pages of the web interface are served from ''/www''. 
-On the device do: 
-  cp important-data.txt /tmp 
-  mount -o bind /tmp /www 
-After that the data on the host connected to the device do: 
-  wget http://192.168.0.123/important-data.txt 
-   
  • Last modified: 2017/05/02 18:02
  • by tmomas