레이블이 PC-BIOS-UEFI인 게시물을 표시합니다. 모든 게시물 표시
레이블이 PC-BIOS-UEFI인 게시물을 표시합니다. 모든 게시물 표시

6/25/2022

Lenova Laptop 과 Ubuntu 22.04 설치

1. 나의 Lenovo Laptop 현재상황 정리   

이 Laptop을 구입 한지 얼마 안되었다고 지금까지 생각했는데, 벌써 2019년의 일이다. 
개인적인 부탁일 때문에 성능상 삼성노트북이 되지 않아 별도로 구입하였다. 

나의 삼성노트북이 존재하지만, Ubuntu까지 설치해가며 지저분하게 사용하고 싶지가 않다. 
차라리 삼성노트북에는 VirtualBox로만 사용하고 싶지 직접 Ubuntu를 설치하기가 싫다. 

최근 다시 Lenovo에서 Window를 재 사용하려고 하니, 갑자기 동작 안되어 무슨 조치를 해야 할 것 같아, 
다시 옛날 기록부터 다시 보기로 했으며, 최후에는 Ubuntu 22.04 재 설치 와 Window 10 Pro 을 두 개 다시 재 설치를 진행한다. . 

  • 현재 Lenovo Laptop 문제 상황정리 
  1. GRUB에서 Window 10 Pro 부팅동작안됨 (팬 소리만 요란함)
  2. BIOS 에서 부팅하여 Window 10 Pro로 해도 안됨 (팬 소리만 요란함)
  3. Ubuntu 20.04 의 NVIDIA Driver가 동작안됨 
  4. Ubuntu 20.04는 잘 동작되어짐 (다만 모니터 확장이 안됨)

아니, 동작이 되던것들이 안되니 무슨일인가? 
너무 오랫동안 사용하지 않아 그런것인가 아니면, 쿠팡의 5000원 Window 10 Pro 문제인가? 
그리고, Ubuntu 20.04의 NVIDIA Driver는 왜 또 맛이 갔는가? 
차주에 스코프가지고 Linux에서 테스트 하려고 했는데 모든것이 다시 원점으로 가야할 것 같다.  


1.1 Lenovo Laptop 자료 백업문제 

문제는 이 Laptop에 Raspberry Pi 의 Yocto 뿐만 아니라, Sphinx를 비롯하여, 다양한 자료들이 있다는 것이다. 

Raspberry Yocto 같은 경우는 자료정리도 못했으며, 얼추 다 해결되었는데, 그냥 날라간다.
블로그에 올리기도 힘들기도 하다. 
나중에 나만의 Yocto를 만들기로 하겠으며, 추후에 다시 해보도록 하겠다. 
참고로, Yocto에 관심이 있다면, 본인도, Chip Maker에서 제공하는 Yocto도 얼마든지 만들수 있다.
 
상위자료만 없어지면 괜찮은데, esp32(ESP-IDF) 비롯하여, snap 기반으로 한 다양한 Tool들은 이미 설치했는데, 설치하려니 골치아프다.
이외에도, docker (내가 구성한 컨테이너) 와 vscode 각 설정비롯하여 vnc도 전부 다 설치를 해두었는데, 
이를 다시 설치와 설정하려고 하니,머리가 아퍼진다. 
더불어, 저번에 conda를 비롯하여 잡다한 것들을 다 설치했는데 이를 다시 구성하려고 하니 골치아프다. 
더불어 node.js 기반의 npm (node.js) 이것저것 다 설치를 해두고 간단한 작업들을 했다. 
node.js 의 electron도 여기서 테스트 를 했기때문에 이 것도 자료를 포기하고 그냥 다 지워야 할 것으로 생각되어진다. 


1.2 USB 시동디스크 준비

우선 다시 USB 시동디스크 부터 준비하도록 하자!!!

  • USB 시동디스크 정리 
아래의 글들을 보면, Rufus를 비롯하여 Ether 와 MS사의 Tool 등을 다양하게 이용을 했으며,이 부분을 간단히 정리 
USB 시동디스크 이므로 아무거나 해서 BIOS에서 잡히면 된다.  


2. Lenovo Laptop 구입과 설치역사 전체정리 

우선 이 Lenovo Laptop의 구입 및 관련 설치들을 간단하게 정리하도록한다.
세부사항들은 각 링크를 참조하도록하며, 각 기록했던 설치기록을 참조하도록한다.


2.1 Window 10 Home 설치 

FreeDos용으로 Lenovo Laptop을 구입 후에 처음으로 설치한 작업이며, 기본적인 테스트만 진행하였다. 

  • Lenovo Laptop  (FreeDos구입결정 ) 
희망에 부풀어, 우선 기능테스트 하고자 미인증 Window 10 Home 설치하여 각 노트북의 기본 테스트 진행하였다. 
돈이 없어, Window 10 Home 구입 못했으며, 그냥 Window 10 Home으로 Key 없이 설치하고 각 Laptop의 기본기능만 테스트만 했다. 

이 제품을 구입때부터 말이 많았던 제품이며, 파는 사람도 좀 찝찝했지만, 당시에는 가성비가 나에게는 너무나 매력적이였기에, 
나의 선택은 당연히 이 제품이였다. 다시 나의 글을 보니, 이 제품을 산 것을 절대 후회한다
물론, 내가 Window 대신, Linux를 설치해서 문제이겠지만, 일단 팬소리가 너무 커서 귀에 거슬린다. 

  • Window 10 설치 후 기본 테스트
  1. MS사에서 제공해주는 Image Download 및 USB 생성기로 부팅디스크 생성 
  2. BIOS의 UEFI로 설정 
  3. Window 10 Home 설치 
  4. 각 Laptop의 기능확인 (NVIDIA 모니터 144Hz 지원확인못함)


2.2 Ubuntu 18.04 와 Window 10 Home 설치 

구입 후, 처음으로 Ubuntu 와 Window 10 을 두개를 같이 설치를 진행했으며, Ubunut의 경우 거의 동작이 되지 않아, 
관련사항들을 기록하였다. 

  • Ubuntu 18.04 와 Window 10 Home 설치진행  
  1. BIOS-ACPI 기반으로 문제발생 (Ubuntu에서 미지원)
  2. 각종 기본 Laptop Driver 문제사항들 정리   

  • 테스트결과 
  1. Ubuntu 18.04 UEFI 모드 부팅실패 
  2. BIOS Update
  3. Ubuntu 18.04 Legagy 모드 부팅완료
  4. BIOS ACPI 문제를 제외 (Grub에서 Kernel 옵션 acpi=off 임시해결)
  5. 이외 Laptop 나머지 Driver 문제들 드디어 해결 

상위 Window 10은 미인증으로 사용하지 않음 


2.3 Ubuntu 18.04 재설치 

  • Lenovo BIOS Update 후 Ubuntu 18.04 재설치  
Lenovo 사이트 제공해준 Guide 대로 설치 진행 후 일단 대충은 동작이 되어지는 것을 확인  
하지만 여전히 ACPI문제로 장시간 Linux를 동작 중 절전모드로 잠깐 가면 복구 안되어짐 
불편을 감수하고 사용을 했으며  각 Laptop의 Driver 문제사항정리 

  • 테스트결과 
  1. Ubuntu 18.04 각 Latptop Driver 문제사항 정리 
  2. WIFI 미동작 확인 및 수정완료 
  3. NVIDIA RTX-2060 Driver 설치 및 테스트 완료 
  4. WIFI/BT/UVC 테스트 확인 
  5. Gparted 로 각 Partition 추가  
  6. BIOS ACPI 문제를 제외 
  7. 이외 Laptop 나머지 Driver 문제들 드디어 해결 
  8. RUFUS 불필요성 느낌 
Ubutu 18.04의 NVIDIA Driver TEST 진행완료 (개인업무시작)


    2.4 Ubuntu 20.04 와 Window 10 Pro 설치 

    Ubuntu 20.04로 변경 및 Window 10 Pro Key도 구입 
    • Ubuntu 20.04 와 Window 10 Pro 
    상위 급한 개인적인 일 다 끝나고, 내가 편하게 사용하고자 해서 다시 설치를 진행 
    Window 10 Pro는 쿠팡에서 5000원 주고 구입하여, 잘 설치를 진행했다
    다만 여전히 BIOS의 ACPI 즉, 전원문제부분은 완전히는 해결이 안되어진다.  

    하지만, 상위 문제 말고는 별다른 문제가 없기에 별 문제 없이 꾸준히 사용하고 있었다. 
    Linux에서 전원설정부분을 막았기 때문에, 큰 불편함을 못 느끼고 최근까지 살았다.  


    • 테스트결과 
    1. Ubuntu 20.04 설치 후 Window 10 설치 (BIOS에서 EFI 선택)
    2. Window 10 설치 후 Ubuntu 20.04 설치 (Grub에서 자동발견) 
    3. 상위 설치 순서에 따라 Window Manager를 BIOS의 EFI or Grub에서 발견   
    4. 두 개의 OS를 NVME 기반으로 설치 진행 
    5. RUFUS 불필요 


    상위 글의 BIOS와 현재 BIOS 비교해보면, 
    1. 상위 생성한 USB DISK 연결확인 
    2. Reset 후 F2로 BIOS 모드 진입
    3. Boot->Legacy : 이 부분이 없어짐 
    상위 문제로 현재 Boot Legacy 때문에 Window가 동작 안되는 것으로 생각되어짐 
    BIOS를 Update해서 생긴 것 같음 

    • BIOS->BOOT Mode->Legacy Support

    • BIOS->BOOT Mode->UEFI 


    3. Ubuntu 와 Window 재설치 진행   

    일단 Window 10의 정품이 필요할 것 같은데, 왠지 5000원 CD Key는 믿음이 안 가서 관련것을 다시 찾아 봐야겠으며, 
    과연 이 후진 Laptop에 Window 10의 정품이 필요한 가에 대해 다시 의문이 든다. 
    찾아보니, 5000원 CD Key도 문제가 없다고 하여 재 설치를 진행

    더불어 최신 Ubuntu 22.04는 ACPI문제가 없는 지를 확인 필요 
    BIOS Update해서 Window의 EFI 내에서 문제가 발생한 것으로 생각되어진다.
    그러니까 부팅자체가 안되어진 걸로 보인다.

    • EFI PXE Network 설치방법 
    IPTime의 DHCP가 BOOTP를 포함한 기능이 제공되지 않으며, 이 기반으로 설치하려면 천상 별도의 DHCP Server 와 TFTP Server가 별도필요
    상위기반으로 설치 및 동작확인하고자는 아래를 보시면 크게 무리없이 하리라 본다.  


    • USB 시동디스크 기반으로 설치진행
    상위 USB 시동디스크 참조
    1. Window 10 Pro 설치결정 
    2. Ubuntu 22.04 설치결정 (최신버전이 ACPI 문제가 많이 줄어듦)
    Grub으로 쉽게 선택하기 위해서 상위 순서로 설치진행하며, 순서를 반대로 설치해도 된다.
    다만, 순서를 반대로 할 경우, BIOS에서만 Boot 선택 가능하므로 불편함을 감수해야한다.  


    3.1  Window 10 Pro 우선설치 

    Window 10 Pro 부터 먼저 설치 진행 

    • Window 10 USB 시동디스크 
    1. MS사에서 Window 10 설치프로그램 
      1. Download MediaCreationTool21H2.exe
      2. USB 시동디스크 생성완료 
    2. Rufus 를 이용하여 Window 10 USB 시동디스크  설치진행 
      1. Rufus Download
      2. 우측 선택-> 다운로드 변경 후 클릭 
      3. Window 10 선택 

      USB 시동디스크 관련내용은 상위 1.2 시동디스크 부분참조 



      • Window USB 시동디스크 확인 
      ESD-USB 에 설치디스크 확인 



      • BIOS 설정 
      1. F2 BIOS 진입 
      2. Boot->Boot Mode: UEFI 설정 (동작되어짐)
      3. Boot->EFI 
        1.  USB BOOT 진행



      • Window 10 Pro 설치 
      1. Window 설정 (언어/시간/키보드)
      2. Window 정품인증
        1. 제품키가 없음 (현재 ID로 관리)
      3. 설치할 운영체제 선택
        1. Window 10 Pro 선택
      4. 관련통지 및 사용조건
        1. 동의 
      5. Windows 설치프로그램
        1. 사용자지정: Windows만 설치(고급)
        2. 삭제:  드라이브 0/1 모든 Partition 전부 제거  
          1. 드라이브 0: WD HDD
          2. 드라이브 1: Samsung NVMe
        3. 새로 만들기: 120000 MB (드라이브 1 선택) 
        4. 자동파티션 3개 생성 (MSR/시스템/주)
      6. USB 시동디스크에서 기본설치 된 후 재부팅 
      7. 기본설정진행 (언어/네크워크)
      8. 개인용설정
      9. 계정 ID로 로그인 (PW반드시 기억)
        1. PIN 번호 설정  
      10. 서비스 권한설정 
      11. MS OFFICE 365 서비스 구독거절 

      설치프로그램 Drive 1의 Partition 확인


      • Window 10 Pro 설치 후 확인사항 
      1. 실행 
      2. 하드 디스크 파티션 만들기 및 포맷 (이전 디스크 관리자)
        1. 디스크 1 의 할당되지 않음 선택
        2. 새 단순볼륨 200000MB 추가 확장완료
      3. 탐색기
        1. 내 PC 의 속성
        2. PC 이름바꾸기 
          1. LAPTOP-LENOVO
      4. Window Update 진행 (시간이 많이 소요됨)

      Patition 확장완료 및 디스크 1 구성확인


      상위 디스크1(NVMe)구성을 간단히 보면 아래와 같다
      1. Window 용 EFI 
      2. Window 용 NTFS(C:)
      3. Window 용 NTFS (복구파티션)
      4. Window 용 NTFS(D:)
      5. 나머지 Linux 용으로 설치예정 (Linux용 EFI 와 EXT4 설치)

      Window 사이트에서 로그인하여 본인의 Laptop을 확인가능 
      상위 계정의 PC의 이름은 내 PC의 PC이름과 동일 


      3.2 Ubuntu 22.04 설치 

      Window 10 Pro를 설치완료 후 Ubuntu 22.04 설치진행 


      Ubuntu 22.04 AMD64 Download

      • USB 시동디스크 설치 
      만약 Rufus에서 ISO 추출에러 발생하면, ISO 대신 dd 방식, 클러스터 8192로 변경 
      USB 시동디스크 관련내용은 상위 1.2 시동디스크 부분참조 




      • BIOS 설정 
      1. F2 BIOS 진입 
      2. Boot->Boot Mode: UEFI 설정 (동작되어짐)
      3. Boot->EFI 
        1.  USB BOOT 진행





      • Ubutu 22.04 설치 
      1. Try to Install Ubuntu 
      2. Ubuntu 22.04 설치 
      3. 설치방법 중략
      4. 설치형식
        1. Windows Boot Manager를 그대로 두고 Ubuntu 설치 
          1. 기본권장 하지만, NVMe 에 대신 SATA 에 기본설치되어 기타변경  
          2. Disk0 HDD  DISK1 NVMe로 잡힘 
        2. 기타  
          1. 남은공간 에서 2개 Partition 생성
          2. + 256 MB (EFI)
            1. 새 파티션의 종류: 주 
            2. 새 파티션의 위치: 이 공간이 시작하는 지점 
            3. 용도: EFI 시스템 파티션 
          3. + 전부 MB (EXT4)
            1. 새 파티션의 종류: 주 
            2. 새 파티션의 위치: 이 공간이 시작하는 지점 
            3. 용도: EXT4
            4. 마운트위치: / 
          4. 부트로더를 설치할 장치 
            1. NVMe 선택 

      설치형식-> 기타 선택

      기타-> 2개의 Patition 생성(EFI 와 EXT4)

      Linux 용 EFI 와 EXT4을 추가 

      설치를 진행해도 아직 ACPI의 문제는 남아있으며, 이 부분은 추후 좀 더 확인
      하지만, 이전 20.04보다 에러상황이 많이 줄었음 



      3.3 Window -> Ubuntu 22.04 설치후 결론 

      기존에는 BIOS의 Legacy Support로만 되었는데, 이제 UEFI 모드로 제대로 동작이 되어진다. 
      결론적으로 이제 UEFI가 제대로 동작이 되어지며, BIOS를 반드시 Update를 해야 한다. 
      참고로, 나의 경우는 BIOS를 여러번 Update를 진행하였다.
      (내 개인 E-Mail로 Lenovo에서 새로운 BIOS Firmware가 나오면 꼬박꼬박 날라온다) 

      다만 현재까지 아직 Ubuntu 22.04에서도 BIOS의 ACPI의 부분적인 문제가 해결되어지지 않았다.
      아래에 Lenovo BIOS Update를 하는 법을 간단히 기술하며 주의사항을 언급한다.


      4. Lenovo BIOS Update


      • 주의사항 
      BIOS Update를 여러번 해본 결과 반드시 주의해야하며, 이전에는 Update 후에 UEFI가 이상해져서, 
      잘안되는 경우와 다양한 경우를 봤기때문에, 물론 이상한 방법으로 해결도 했지만,  안되는 경우도 발생하여, 
      반드시 새롭게 OS를 설치할 각오를 하고, BIOS를 Update하시는게 마음이 편한 것 같음.  

      문제가 생기는 원인들은 이 Laptop에 동시에  두 OS (Linux 와 Window) 설치하여 사용하기 때문에 생기는 것이므로, 
      이 Laptop의 OS를 Window 전용으로만 사용한다면, BIOS Update 문제 없을 거라고 본다.(추측)  
      그러니 겁먹지 마시길 


      • Lenovo BIOS Update

      Lenovo Laptop 정보


      상위와 같이 BIOS update


      my Laptop BIOS Update

      • Lenovo BIOS Update
      윈도우로만 잘 쓰고 문제가 없다고 느끼시는 분들은 별로 추천하지 않는다

      • Lenovo LOGO Update
      재미있는 것은 Booting 때 지겨운 제조사 로고 대신 나만의 로고로도 변경가능하며, 하지만 별 다르게 변경할 LOGO를 찾지 못해 아래의 것은 하지 않는다.
      추후 변경할 것이 있다면 그때 다시 생각하도록 하자.  (그때까지 보류)


      12/12/2020

      Lenovo Ubuntu 20.04 와 Window 10 재 설치

       1. Lenovo Laptop 재설치 개요 

      현재 Ubuntu 18.04 와 Window 10 Home(미인증)을 별도의 두 개의 Driver에 나누어 설치하여 Dual Boot로 사용중이며, 
      일반적으로 사용하면 큰 문제 없지만, 새로운 Ubuntu 20.04에 기대가 커서 다시 설치하기로 결정하였다. 

      하지만 기존에 작업하던 Machine Learning / Deep Learning 을 위해서 구입한 이 Laptop의 최대 성능을 사용하기 위해서 
      Ubuntu 18.04 가 NVMe 1T Bytes 전부 사용하고 있었으며, Conda를 비롯하여, NVIDIA 관련 Docker를 비롯하여 
      DeepStream 역시 전부 지우기로 결정하였다.

      저번 개인알바일이 끝났으므로, 더 이상 필요 없을 것으로 생각되지만, 왠지 좀 자료들을 많이 정리하지 못해 아쉽다. 
      하는 일에 비해서 매번 정리해야 할 자료가 너무 많기때문에 , 어쩔 수 없이 자료정리는 포기하기로 결정한다. 

      만약 다음에 다시 개발하면, 새로 배우는 줄 착각할 것 같다. 

      이번기회에 Window 10 Pro 구입과 동시에,  Ubuntu 20.04 와 같이  두 OS를 빠르게 사용하기위해서 전부 NVMe에 모두 설치하기로 결정하였다.   
      나머지 HDD는 백업용으로 사용하기로 결정. 

      • Ubuntu 18.04 설치 후 설정 및 각 테스트 한 사항 

      • Ubuntu 18.04 와 Window 10 설치 

      설치전 확인사항 이전에 Window 10의 Image가 4G이 조금 넘어 현재 가지고 있는 USB Flash가 전부 4G이어서 현재 USB SD Card로 이를 해결. 
       
      • USB 시동디스크 와 UEFI 기본이해 


      1.1 Lenovo 현재 SSD/HDD 구성확인

      • Lenovo SSD와 HDD 구성 
      1. NVMe 1T:  Ubuntu 18.04 분할하여 전체사용 
      2. HDD 1T: Window 10 Home (미인증) 전체사용 
      NVMe에 GRUB이 설치되어 HDD의 Window 10 Home Manager을 인식하며 Dual Boot 가능하며, 동시에 BIOS로 UEFI Boot 도 EFI를 조절하여 부팅도가능 


      1.2 Lenovo 설치 SSD/HDD 구성예정 

      • Lenovo SSD/HDD 설치구성 
      1. NVMe 1T:  Ubuntu 20.04 / Window 10 Pro( 구입 및 인증)
        1. Window 500G Byte 사용예정  (250G/250G)
          1. C: 250G 
          2. D: 250G
        2. Ubuntu 20.04 500G Bytes 사용예정
          1. EFI와 ROOT로만 분할하고 전체사용   
      2. HDD 1T: 
        1. 여분으로 이용할 예정이며, Window 500G는 Backup 용도 
        2. 여분으로 이용할 예정이며, Ubuntu 500G는 확장으로 사용 

      • 설치방법순서 비교
      1. Window 10 설치 -> Ubuntu 20.04 설치 : GRUB이 Window Manager를 파악가능
      2. Ubuntu 20.04 설치 -> Window 10 설치 : GRUB이 파악못함 

      • 결론 
      상위 두개다 해본 결과 Ubuntu 설치 후 Window 10 설치가 가장 만족이 높으며, 에러가 없다.


      1.3 Window 10 설치 -> Ubuntu 20.04 설치  

      NVMe에 한 곳에 넣을 것이므로, Window를 먼저 설치 후 Ubuntu를 설치해야 Window Manager가 보호되며, 
      GRUB에서 Ubuntu 와 Window Dual Boot가 가능할 것임. 

      Window 10는 잘 설치 되었지만, Ubuntu 20.04가 설치도중에, 문제가 발생한 후 멈추었으며, 완벽한 설치가 되지 않았음. 
      기존 Ubuntu 18.04 처럼 많은 문제를 일으키지는 않았지만, 반드시 BIOS를 Legacy Mode로 설치 진행해야함 
      (원래는 UEFI에서 되어야 하는 것 같은데, 안되어짐, BIOS가 아직 문제인 것 같음)

      • 설치 후 Linux GRUB기반으로 Dual Boot가능 
      1. Window 관련부분은 현재 문제 없는 것으로 보임 
      2. Ubuntu는 Graphic 관련부분에 문제사항이 있는 것으로 보이지만, 기본동작가능 
      3. BIOS의 Boot Option 선택이 아닌 Grub으로 편하게 Dual Boot가 가능해짐 

      • OS Dual Boot 방법 
      1. Linux GRUB에서 Window or Ubuntu를 쉽게 설정진행
      2. BIOS에서 결정 가능하며, EFI Booting 우선순위 설정가능 

      1.4 Ubuntu 20.04 설치 -> Window 10 설치  

      현재 각각 Window 와 Ubuntu 별도의 EFI가 존재하므로, Ubuntu 설치 한 후 Window 설치 진행 한 후, 
      BIOS에서 진입하여 매번 EFI 우선순위만 변경하여, Dual Boot도 가능.   

      Ubuntu 를 먼저 설치해야 하며, Window를 위해 공간을 남기기 위해서는 Ubuntu에서 고급옵션으로 Partition을  두 개로 분할.
      1. EFI (128~512Mb)
      2. Root Partition (EXT4)
      상위 각 Partition을 별도로 잡고 설치를 진행한 후, 나머지 공간에 Window 공간을 잡아 설치를 진행한다. 

      상위 설치 시에는 큰 문제가 없었으며,  Window 설치도 문제가 없었다. 
      다만, Grub이 먼저 설치되어 Window Manager를 발견을 못해서 Grub Booting 불가능하여,불편하며, 
      상위 Dual Boot는 BIOS기반으로만 진행 해야 한다. 

      다만 설치 후 BIOS의 EFI 기반 Dual Boot 가능하지만, Legacy Mode로만 가능하며, UEFI가 불가능하다. 
      BIOS에서 Legacy Mode로 EFI를 설정하여 직접 Booting Mode를 설정으로만 Dual Boot 가능 
      반드시 Boot Mode -> UEFI MODE는 아직 지원되지 않으며, Boot Mode->Legacy Mode로 실행 (왜 안되는지는 아직 모르겠음)

      • OS Dual Boot 방법 
      1. BIOS에서 결정되며, BIOS에서 직접 EFI Booting 순서 변경(F5/F6) 

      2. Lenovo Window 10 Pro 설치준비 

      • Window 10 Home/Pro Image 준비 

      상위를 Window에서 실행하면, 쉽게 USB로 Image를 생성해주며, 이를 이용하여 설치진행 
      파티션은 전부 다 지우고, 사용예정인 500G 중 다시 반씩 분할하여 각각 250G / 250G 사용하여 쉽게 설치진행.
       
      ** 외부 USB 8G 이상으로 준비 (상위 이미지 Write 후 Booting 모드에서 변경)


      3. Lenovo Ubuntu 20.04  설치준비 

      Lenovo Laptop이 Ubuntu 18.04을 완벽히 지원하지 못하므로, 이에 관련된 수정사항들을 기억해야하며,  더불어 아직도 가끔씩 파워부분 과 그래픽 부분이 가끔 이상하므로, 
      설치전에 이런 부분이 Ubuntu 20.04에서는 개선되어 있기를 바란다. (간절히)


      • Ubuntu 20.04 LTS Download 


      • 외장형 USB Ubuntu 20.04 제작 (기존과 동일)
      상위 Ubuntu 20.04 Image를 Download 한 후 아래와 같이 외장형 USB에 Image를 Write하여, Startup Disk를 생성한다.



      • 외장형 USB의 Ubuntu  Image의 Partition 구성확인 
      32GB 외장 USB 에 2nd Partition 에 FAT 기반으로 EFI Partion을 확인가능 




      3.1 Ubuntu 20.04 설치를 위한 BIOS 설정 

      기존과 동일하게 BIOS->Boot->Boot Mode->UEFI 로 설정 후 설치 진행하면,  Kernel Parameter에 acpi=off를 해야하지만 문제가 동일하게 발생 (UEFI Mode 설치 미지원)

      BIOS->Boot->Boot Mode 설정관련

      BIOS-> Boot->Boot Mode -> Legacy Mode로 변경할 경우 별도의 Kernel Parameter를 수정안해도 된다.
      하지만, ACPI의 완벽한 지원은 아직도 지원되지 않으므로 관련내용은 확인하도록하자.

      • Lenovo BIOS Legacy Mode 설정 준비
      1. 상위 생성한 USB DISK 연결확인 
      2. Reset 후 F2로 BIOS 모드 진입
      3. Boot -> Boot Mode: Legacy Support Mode 변경
      4. Boot -> Boot Priority : UEFI First
      5. Boot->EFI : 
        1. Linpus lite:  USB를 최상위로 변경 (F5/F6) 
      6. Boot->Legacy
        1. SATA HDD:  NVMe 최상위 유지 (F5/F6) 



      별다른 에러없이 진행되며 WIFI도 연결가능 (Ubuntu 18.04와 많이 다름)
      상위 EFI는 기존에 이미 Ubuntu 18.04 와 Window 10 Home이 설치가 되어있으므로 나오는 것이며, 이를 변경할 것임 

      • Ubuntu 20.04 설치준비
      1. Ubuntu 설치 진행 
      2. 무선네트워크 설정
      3. 디스크를 지우고 Ubuntu 설치 
      4. 파티션 직접설정
        1. EFI Partition 256 M
        2. EXT4  Root Partion 500G



      Ubuntu 20.04의 모든파티션을 새테이블을 이용하여 삭제진행 (기존 Parition 전부삭제) 


      • Ubuntu 20.04의 각 Partition 직접 설정 후 설치 진행
      1. EFI Partition : 256M 
      2. Root Partition: 500G  

      만약 Window 먼저 설치하면서 NVMe의 Partition을 설정했다면, NVMe의 남은영역을 전부 사용할 것이므로, 상위와 같이 수동으로 Partition 설정할 필요 없음 



      처음에 Ubuntu 18.04를 지우고 설치하면, 파티션을 수동 설정가능한 줄 알았는데, 안되어서 상위메뉴로 변경
      이전 설치와 다르게 Driver 문제들은 자동으로 해결되는 것으로 보이며, 18.04와 많이 달라 현재 만족하며 사용 


      4. BIOS의 PXE Boot

      상위는 USB기반으로 했지만, EFI를 Network 기반으로 가져와서 가능한 것으로 보이는데,  문제는 유선으로 해야할 것 같은데, 
      나중에 유선랜을 연결하여 해보도록 하자.   

      관련자료이며, 각 서버가 필요 

      9/03/2019

      Lenovo Ubuntu 설치및 HW 테스트 진행완료

      1. Lenovo Ubuntu 설치가이드 

      나의 Laptop 모델사양 재확인 
      - Lenovo Y540-15IRH LEGION i7 Prime 2060

      드디어 아래의 문서를 찾았으며, 아래의 문서대로 하면, WIFI Driver가 동작되는 것을 확인하였다.
      특히한것은 ETCHER를 이용하여, 그대로 사용했는데 RUFUS를 이용 안해도 되는것 같다.
      궁금한것은 RUFUS의 역할이 정확하게 뭐하는지 좀 애매한 것같다.
      EFI Partition을 만들어주는 역할이 추가 된 것로 생각 하면 될 것 같다. 

      • Lenovo Y530 Ubuntu Install Guide 
      Lenovo에서 출시한 Laptop 중 내것 과 가장 유사하며, CPU와 GPU와 Driver들은  많이 다르지만 기본 Board가 비슷할 것이며, 아래 설치가이드대로 설치 진행

        https://forums.lenovo.com/t5/Gaming-Laptops-Knowledge-Base/Installing-Ubuntu-on-the-Legion-Y530/ta-p/4187251
        https://github.com/kfechter/LegionY530Ubuntu
        https://github.com/kfechter/LegionY530Ubuntu/blob/master/Sections/Troubleshooting.md


      이전 Ubuntu  와 Window 설치 문제사항 
        https://ahyuo79.blogspot.com/2019/09/lenovo-laptop-ubuntu.html

      처음  ETCHER or Win32DiskImager를 이용하려 했었지만, RUFUS의 독특한 설정으로 (GPT/MBR 설정, BIOS설정)으로 RUFUS를 사용하게되었다.
      결론은 BIOS-> Legacy로 USB Boot를 하면, Rufus까지는 불필요한 것으로 보인다. 물론 사용하면 좋지만, ETHER로만으로 충분한 것 같다. 

      상위 Install  Guide의 파란화면은 WINDOW 10의 Recovery Mode의 설정이며, 관련부분은 별도 설정을 하지 않았다.
      이 궁금증은 나중에 보도록하고 설치를 진행하자

      1.1  상위 Y530 설치가이드 대로 진행 

      세부 그림 및 설정 사항은 상위 Y530 Ubuntu Install Guide를 보면 될 것 같다. 

      • Ubuntu 18.04 설치 진행 (WIFI 동작확인) 
      1. Ubuntu USB Boot가능한 Flash 생성 후 Lenovo USB에 연결
      2. 부팅후 F2를 눌러 BIOS 모드로 진입 
      3. BIOS->BOOT 를 Legacy Mode로 변경 
      4. BIOS->BOOT의 EFI 와 Legacy 부분의 USB 우선순위 맨 위로 변경 저장후 재부팅 
      5. USB 우선순위는 F10을 눌러 BOOT Manager 에서 순서변경가능 
      6. UBUNTU의 GRUB 실행시 try ubuntu without installing  실행
      7. UBUNTU가 실행 제대로 되면, Open Terminal 생성 후 아래의 Command WIFI 동작 
      8. sudo rmmod ideapad_laptop ( WIFI 동작가능)
      9. UBUNTU의 맨 왼쪽 아이콘에서 Ubuntu Install 진행하여 Ubuntu 18.04 설치진행
      10. 설치진행완료 후 아래와 같이 부팅시마다 ideapad_laptop 모듈을 미동작하도록 수정  
      11. sudo gedit  /etc/modprob.d/blacklist.conf  (WIFI 동작 )
      12. sudo update/ upgrade 
      13. Reboot 후 GRUB에서 e를 눌러 Kernel Parameter에 quiet splash nouveau.modeset=0 추가 (NVIDIA Driver설치 후 필요없다고함)
      14. GRUB에서 수정된 Parameter 값으로 부팅 F10진행 


      nouveau 관련내용 이해 , 설명이 잘되어 있음 
        https://blog.neonkid.xyz/66


      WIFI 미동작원인은 두개의 Driver가 동작되어 충돌되어 미동작되는 것이며, 이 모듈을 매번제거하면 해결 (ideapad_laptop)

      • WIFI 미동작 관련 부분  
      $ sudo rmmod ideapad_laptop  // WIFI Driver 동작확인 
      
      $ sudo gedit /etc/modprobe.d/blacklist.conf
      ........
      blacklist ideapad_laptop 
      

      매번 rmmod로 제거 할 수 없으니 Kernel Module Load하는 부분에서 완전히 제거 


      • 크롬설치진행 및 필요사항 설치
      $ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
      $ sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
      $ sudo apt-get update
      //크롬 설치
      $ sudo apt-get install google-chrome-stable
      $ sudo rm -rf /etc/apt/sources.list.d/google.list 
      
      
      Ubuntu 기반의 개발환경 구성 
        https://ahyuo79.blogspot.com/2019/01/ubuntu.html
        https://ahyuo79.blogspot.com/2018/05/ubuntu-1604-lts-version.html

      Ubuntu 18.04 설치관련 정보 (NVIDIA 관련사항)
        https://eungbean.github.io/2018/08/08/Ubuntu-Installation1/

      NVIDIA Driver를 설치전에는 Setting 부분이 그래픽카드문제로 동작되지 않는다.
      그리고, 자주 사용하는 screenshot 과

      1.2 NVIDIA RTX-2060 Driver 설치진행

      자료출처
        https://hiseon.me/linux/ubuntu/install_nvidia_driver/

      상위에서 쉽게 설명을 해주어서 내  RTX-2060도 쉽게 설치했지만 더 쉽게 그냥 3줄로 설치 가능할 것 같다

      • NVIDIA DRIVER 설치준비

      $ cat /proc/driver/nvidia/version 
      cat: /proc/driver/nvidia/version: No such file or directory
      
      $ lspci -k
      ...
      01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f11 (rev a1)
       Subsystem: Lenovo Device 3ffd
       Kernel driver in use: nouveau
       Kernel modules: nvidiafb, nouveau
      ...
      
      $ release="ubuntu"$(lsb_release -sr | sed -e "s/\.//g")
      
      $ echo $release
      ubuntu1804
      
      $ sudo apt install sudo gnupg
      $ sudo apt-key adv --fetch-keys "http://developer.download.nvidia.com/compute/cuda/repos/"$release"/x86_64/7fa2af80.pub"
      $ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/'$release'/x86_64 /" > /etc/apt/sources.list.d/nvidia-cuda.list'
      $ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/'$release'/x86_64 /" > /etc/apt/sources.list.d/nvidia-machine-learning.list'
      $ sudo apt update
      
      $ apt-cache search nvidia // NSIGHT 부터 CUDA nvvp 와 cuda-visual-tools 도 설치 가능 
      dmraid - Device-Mapper Software RAID support tool
      libvdpau-dev - Video Decode and Presentation API for Unix (development files)
      libvdpau-doc - Video Decode and Presentation API for Unix (documentation)
      libvdpau1 - Video Decode and Presentation API for Unix (libraries)
      libvdpau1-dbg - Video Decode and Presentation API for Unix (debug symbols)
      libxnvctrl-dev - NV-CONTROL X extension (development files)
      libxnvctrl0 - NV-CONTROL X extension (runtime library)
      nvidia-prime - Tools to enable NVIDIA's Prime
      nvidia-settings - Tool for configuring the NVIDIA graphics driver
      ubuntu-drivers-common - Detect and install additional Ubuntu driver packages
      vdpau-driver-all - Video Decode and Presentation API for Unix (driver metapackage)
      xserver-xorg-video-nouveau - X.Org X server -- Nouveau display driver
      libcuda1-340 - NVIDIA CUDA runtime library
      libnvidia-cfg1-390 - NVIDIA binary OpenGL/GLX configuration library
      libnvidia-common-390 - Shared files used by the NVIDIA libraries
      libnvidia-compute-390 - NVIDIA libcompute package
      libnvidia-decode-390 - NVIDIA Video Decoding runtime libraries
      libnvidia-encode-390 - NVENC Video Encoding runtime library
      libnvidia-fbc1-390 - NVIDIA OpenGL-based Framebuffer Capture runtime library
      libnvidia-gl-390 - NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
      libnvidia-ifr1-390 - NVIDIA OpenGL-based Inband Frame Readback runtime library
      nvidia-331 - Transitional package for nvidia-331
      nvidia-331-dev - Transitional package for nvidia-340-dev
      nvidia-331-updates - Transitional package for nvidia-340
      nvidia-331-updates-dev - Transitional package for nvidia-340-dev
      nvidia-331-updates-uvm - Transitional package for nvidia-340
      nvidia-331-uvm - Transitional package for nvidia-340
      nvidia-340-dev - NVIDIA binary Xorg driver development files
      nvidia-340-updates - Transitional package for nvidia-340
      nvidia-340-updates-dev - Transitional package for nvidia-340-dev
      nvidia-340-updates-uvm - Transitional package for nvidia-340-updates
      nvidia-340-uvm - Transitional package for nvidia-340
      nvidia-346 - Transitional package for nvidia-346
      nvidia-346-dev - Transitional package for nvidia-352-dev
      nvidia-346-updates - Transitional package for nvidia-346-updates
      nvidia-346-updates-dev - Transitional package for nvidia-352-updates-dev
      nvidia-352 - Transitional package for nvidia-361
      nvidia-352-dev - Transitional package for nvidia-361-dev
      nvidia-352-updates - Transitional package for nvidia-361
      nvidia-352-updates-dev - Transitional package for nvidia-361-dev
      nvidia-361 - Transitional package for nvidia-367
      nvidia-361-dev - Transitional package for nvidia-367-dev
      nvidia-361-updates - Transitional package for nvidia-361
      nvidia-361-updates-dev - Transitional package for nvidia-361-dev
      nvidia-367 - Transitional package for nvidia-375
      nvidia-367-dev - Transitional package for nvidia-375-dev
      nvidia-375 - Transitional package for nvidia-384
      nvidia-375-dev - Transitional package for nvidia-384-dev
      nvidia-compute-utils-390 - NVIDIA compute utilities
      nvidia-dkms-390 - NVIDIA DKMS package
      nvidia-driver-390 - NVIDIA driver metapackage
      nvidia-headless-390 - NVIDIA headless metapackage
      nvidia-headless-no-dkms-390 - NVIDIA headless metapackage - no DKMS
      nvidia-kernel-common-390 - Shared files used with the kernel module
      nvidia-kernel-source-390 - NVIDIA kernel source package
      nvidia-opencl-icd-340 - NVIDIA OpenCL ICD
      nvidia-utils-390 - NVIDIA driver support binaries
      xserver-xorg-video-nvidia-390 - NVIDIA binary Xorg driver
      bbswitch-dkms - Interface for toggling the power on NVIDIA Optimus video cards
      boinc-client-nvidia-cuda - metapackage for CUDA-savvy BOINC client and manager
      bumblebee - NVIDIA Optimus support for Linux
      bumblebee-nvidia - NVIDIA Optimus support using the proprietary NVIDIA driver
      conky-all - highly configurable system monitor (all features enabled)
      conky-all-dbg - highly configurable system monitor (all features enabled - debug)
      cpufreqd - fully configurable daemon for dynamic frequency and voltage scaling
      flashrom - Identify, read, write, erase, and verify BIOS/ROM/flash chips
      gcc-7-offload-nvptx - GCC offloading compiler to NVPTX
      gcc-8-offload-nvptx - GCC offloading compiler to NVPTX
      gcc-offload-nvptx - GCC offloading compiler to NVPTX
      gimp-normalmap - Normal map plugin for GIMP
      hobbit-plugins - plugins for the Xymon network monitor
      kubuntu-driver-manager - Driver Manager for Kubuntu
      kubuntu-driver-manager-dbg - Driver Manager for Kubuntu -- debug symbols
      libgomp-plugin-nvptx1 - GCC OpenMP v4.5 plugin for offloading to NVPTX
      libnvtt-bin - NVIDIA Texture Tools (Binaries)
      libnvtt-dev - NVIDIA Texture Tools (Header)
      libnvtt2 - NVIDIA Texture Tools
      mate-optimus - MATE Desktop applet for controlling NVIDIA Optimus graphics cards
      mate-sensors-applet - Display readings from hardware sensors in your MATE panel
      mate-sensors-applet-nvidia - Display readings from hardware sensors in your MATE panel (NVIDIA sensors)
      numba-doc - native machine code compiler for Python (docs)
      nvidia-common - transitional package for ubuntu-drivers-common
      nvtv - tool to control TV chips on NVidia cards under Linux
      primus - client-side GPU offloading for NVIDIA Optimus
      psensor - display graphs for monitoring hardware temperature
      psensor-server - Psensor server for monitoring hardware sensors remotely
      pyrit - GPGPU-driven WPA/WPA2-PSK key cracker
      pyrit-opencl - OpenCL extension module for Pyrit
      python-numba - native machine code compiler for Python 2
      python3-numba - native machine code compiler for Python 3
      sensors-applet - Display readings from hardware sensors in your Gnome panel
      sysinfo - display computer and system information
      vc-dev - Library to ease explicit vectorization of C++ code
      vdpauinfo - Video Decode and Presentation API for Unix (vdpauinfo utility)
      hashcat-nvidia - Installs hashcat and its dependencies for users with NVIDIA GPU
      libaccinj64-9.1 - NVIDIA ACCINJ Library (64-bit)
      libcg - Nvidia Cg core runtime library
      libcggl - Nvidia Cg Opengl runtime library
      libcublas9.1 - NVIDIA cuBLAS Library
      libcudart9.1 - NVIDIA CUDA Runtime Library
      libcufft9.1 - NVIDIA cuFFT Library
      libcufftw9.1 - NVIDIA cuFFTW Library
      libcuinj64-9.1 - NVIDIA CUINJ Library (64-bit)
      libcupti-dev - NVIDIA CUDA Profiler Tools Interface development files
      libcupti-doc - NVIDIA CUDA Profiler Tools Interface documentation
      libcupti9.1 - NVIDIA CUDA Profiler Tools Interface runtime library
      libcurand9.1 - NVIDIA cuRAND Library
      libcusolver9.1 - NVIDIA cuSOLVER Library
      libcusparse9.1 - NVIDIA cuSPARSE Library
      libnppc9.1 - NVIDIA Performance Primitives core runtime library
      libnppial9.1 - NVIDIA Performance Primitives lib for Image Arithmetic and Logic
      libnppicc9.1 - NVIDIA Performance Primitives lib for Image Color Conversion
      libnppicom9.1 - NVIDIA Performance Primitives lib for Image Compression
      libnppidei9.1 - NVIDIA Performance Primitives lib for Image Data Exchange and Initialization
      libnppif9.1 - NVIDIA Performance Primitives lib for Image Filters
      libnppig9.1 - NVIDIA Performance Primitives lib for Image Geometry transforms
      libnppim9.1 - NVIDIA Performance Primitives lib for Image Morphological operations
      libnppist9.1 - NVIDIA Performance Primitives lib for Image Statistics
      libnppisu9.1 - NVIDIA Performance Primitives lib for Image Support
      libnppitc9.1 - NVIDIA Performance Primitives lib for Image Threshold and Compare
      libnpps9.1 - NVIDIA Performance Primitives for signal processing runtime library
      libnvblas9.1 - NVBLAS runtime library
      libnvgraph9.1 - NVIDIA Graph Analytics library (nvGRAPH)
      libnvrtc9.1 - CUDA Runtime Compilation (NVIDIA NVRTC Library)
      libnvtoolsext1 - NVIDIA Tools Extension Library
      libnvvm3 - NVIDIA NVVM Library
      nouveau-firmware - Firmware for nVidia graphics cards
      nvidia-cg-dev - Cg Toolkit - GPU Shader Authoring Language (headers)
      nvidia-cg-doc - Cg Toolkit - GPU Shader Authoring Language (documentation)
      nvidia-cg-toolkit - Cg Toolkit - GPU Shader Authoring Language
      nvidia-cuda-dev - NVIDIA CUDA development files
      nvidia-cuda-doc - NVIDIA CUDA and OpenCL documentation
      nvidia-cuda-gdb - NVIDIA CUDA Debugger (GDB)
      nvidia-cuda-toolkit - NVIDIA CUDA development toolkit
      nvidia-libopencl1-331 - Transitional package for nvidia-libopencl1-340
      nvidia-libopencl1-331-updates - Transitional package for nvidia-libopencl1-340
      nvidia-libopencl1-340 - NVIDIA OpenCL Driver and ICD Loader library
      nvidia-libopencl1-340-updates - Transitional package for nvidia-libopencl1-340
      nvidia-libopencl1-346 - Transitional package for nvidia-libopencl1-352
      nvidia-libopencl1-346-updates - Transitional package for nvidia-libopencl1-352-updates
      nvidia-libopencl1-352 - Transitional package for nvidia-libopencl1-361
      nvidia-libopencl1-352-updates - Transitional package for nvidia-libopencl1-361
      nvidia-libopencl1-361 - Transitional package for nvidia-libopencl1-367
      nvidia-libopencl1-361-updates - Transitional package for nvidia-libopencl1-361
      nvidia-libopencl1-367 - Transitional package for nvidia-libopencl1-375
      nvidia-libopencl1-375 - Transitional package for nvidia-libopencl1-384
      nvidia-modprobe - utility to load NVIDIA kernel modules and create device nodes
      nvidia-nsight - NVIDIA Nsight Eclipse Edition
      nvidia-opencl-dev - NVIDIA OpenCL development files
      nvidia-opencl-icd-331 - Transitional package for nvidia-opencl-icd-340
      nvidia-opencl-icd-331-updates - Transitional package for nvidia-opencl-icd-340
      nvidia-opencl-icd-340-updates - Transitional package for nvidia-opencl-icd-340
      nvidia-opencl-icd-346 - Transitional package for nvidia-opencl-icd-352
      nvidia-opencl-icd-346-updates - Transitional package for nvidia-opencl-icd-352-updates
      nvidia-opencl-icd-352 - Transitional package for nvidia-opencl-icd-361
      nvidia-opencl-icd-352-updates - Transitional package for nvidia-opencl-icd-361
      nvidia-opencl-icd-361 - Transitional package for nvidia-opencl-icd-367
      nvidia-opencl-icd-361-updates - Transitional package for nvidia-opencl-icd-361
      nvidia-opencl-icd-367 - Transitional package for nvidia-opencl-icd-375
      nvidia-opencl-icd-375 - Transitional package for nvidia-opencl-icd-384
      nvidia-profiler - NVIDIA Profiler for CUDA and OpenCL
      nvidia-visual-profiler - NVIDIA Visual Profiler for CUDA and OpenCL
      python-pycuda - Python module to access Nvidia‘s CUDA parallel computation API
      python-pycuda-dbg - Python module to access Nvidia‘s CUDA API (debug extensions)
      python-pycuda-doc - module to access Nvidia‘s CUDA computation API (documentation)
      python3-pycuda - Python 3 module to access Nvidia‘s CUDA parallel computation API
      python3-pycuda-dbg - Python 3 module to access Nvidia‘s CUDA API (debug extensions)
      tegrarcm - Tool to upload payloads in Tegra SoC recovery mode
      xserver-xorg-video-nouveau-hwe-18.04 - X.Org X server -- Nouveau display driver
      libnvidia-cfg1-418 - Transitional package for libnvidia-cfg1-430
      libnvidia-cfg1-430 - NVIDIA binary OpenGL/GLX configuration library
      libnvidia-common-418 - Transitional package for libnvidia-common-430
      libnvidia-common-430 - Shared files used by the NVIDIA libraries
      libnvidia-compute-418 - Transitional package for libnvidia-compute-430
      libnvidia-compute-430 - NVIDIA libcompute package
      libnvidia-decode-418 - Transitional package for libnvidia-decode-430
      libnvidia-decode-430 - NVIDIA Video Decoding runtime libraries
      libnvidia-encode-418 - Transitional package for libnvidia-encode-430
      libnvidia-encode-430 - NVENC Video Encoding runtime library
      libnvidia-fbc1-418 - Transitional package for libnvidia-fbc1-430
      libnvidia-fbc1-430 - NVIDIA OpenGL-based Framebuffer Capture runtime library
      libnvidia-gl-418 - Transitional package for libnvidia-gl-430
      libnvidia-gl-430 - NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
      libnvidia-ifr1-418 - Transitional package for libnvidia-ifr1-430
      libnvidia-ifr1-430 - NVIDIA OpenGL-based Inband Frame Readback runtime library
      linux-modules-nvidia-390-4.15.0-1022-oracle - Linux kernel nvidia modules for version 4.15.0-1022
      linux-modules-nvidia-390-4.15.0-1047-aws - Linux kernel nvidia modules for version 4.15.0-1047
      linux-modules-nvidia-390-4.15.0-58-generic - Linux kernel nvidia modules for version 4.15.0-58
      linux-modules-nvidia-390-4.15.0-58-lowlatency - Linux kernel nvidia modules for version 4.15.0-58
      linux-modules-nvidia-390-4.15.0-60-generic - Linux kernel nvidia modules for version 4.15.0-60
      linux-modules-nvidia-390-4.15.0-60-lowlatency - Linux kernel nvidia modules for version 4.15.0-60
      linux-modules-nvidia-390-5.0.0-1018-azure - Linux kernel nvidia modules for version 5.0.0-1018
      linux-modules-nvidia-390-aws - Extra drivers for nvidia-390 for the aws flavour
      linux-modules-nvidia-390-azure - Extra drivers for nvidia-390 for the azure flavour
      linux-modules-nvidia-390-generic - Extra drivers for nvidia-390 for the generic flavour
      linux-modules-nvidia-390-lowlatency - Extra drivers for nvidia-390 for the lowlatency flavour
      linux-modules-nvidia-390-oracle - Extra drivers for nvidia-390 for the oracle flavour
      linux-modules-nvidia-418-5.0.0-1018-azure - Linux kernel nvidia modules for version 5.0.0-1018
      linux-modules-nvidia-418-azure - Extra drivers for nvidia-418 for the azure flavour
      nvidia-340 - NVIDIA binary driver - version 340.107
      nvidia-compute-utils-418 - Transitional package for nvidia-compute-utils-430
      nvidia-compute-utils-430 - NVIDIA compute utilities
      nvidia-dkms-418 - Transitional package for nvidia-dkms-430
      nvidia-dkms-430 - NVIDIA DKMS package
      nvidia-driver-418 - Transitional package for nvidia-driver-430
      nvidia-driver-430 - NVIDIA driver metapackage
      nvidia-headless-418 - Transitional package for nvidia-headless-430
      nvidia-headless-430 - NVIDIA headless metapackage
      nvidia-headless-no-dkms-418 - Transitional package for nvidia-headless-no-dkms-430
      nvidia-headless-no-dkms-430 - NVIDIA headless metapackage - no DKMS
      nvidia-kernel-common-418 - Transitional package for nvidia-kernel-common-430
      nvidia-kernel-common-430 - Shared files used with the kernel module
      nvidia-kernel-source-418 - Transitional package for nvidia-kernel-source-430
      nvidia-kernel-source-430 - NVIDIA kernel source package
      nvidia-utils-418 - Transitional package for nvidia-utils-430
      nvidia-utils-430 - NVIDIA driver support binaries
      xserver-xorg-video-nvidia-418 - Transitional package for xserver-xorg-video-nvidia-430
      xserver-xorg-video-nvidia-430 - NVIDIA binary Xorg driver
      linux-modules-nvidia-390-5.0.0-1020-oem-osp1 - Linux kernel nvidia modules for version 5.0.0-1020
      linux-modules-nvidia-390-oem-osp1 - Extra drivers for nvidia-390 for the oem-osp1 flavour
      linux-modules-nvidia-418-5.0.0-1020-oem-osp1 - Linux kernel nvidia modules for version 5.0.0-1020
      linux-modules-nvidia-418-oem-osp1 - Extra drivers for nvidia-418 for the oem-osp1 flavour
      nsight-systems-2019.3.7 - NVIDIA Nsight Systems is a statistical sampling profiler with tracing features.
      cuda-drivers-diagnostic - CUDA Driver diagnostics meta-package
      cuda-drivers - CUDA Driver meta-package
      cuda-gdb-10-0 - CUDA-GDB
      cuda-gdb-10-1 - CUDA-GDB
      cuda-libraries-10-0 - CUDA Libraries 10.0 meta-package
      cuda-libraries-10-1 - CUDA Libraries 10.1 meta-package
      cuda-libraries-dev-10-0 - CUDA Libraries 10.0 development meta-package
      cuda-libraries-dev-10-1 - CUDA Libraries 10.1 development meta-package
      cuda-nsight-10-0 - CUDA nsight
      cuda-nsight-10-1 - CUDA nsight
      cuda-nsight-compute--10-0 - NVIDIA Nsight Compute Addon
      cuda-nsight-compute-10-0 - NVIDIA Nsight Compute
      cuda-nsight-compute-10-1 - NVIDIA Nsight Compute
      cuda-nsight-systems-10-1 - NVIDIA Nsight Systems
      cuda-nvtx-10-0 - NVIDIA Tools Extension
      cuda-nvtx-10-1 - NVIDIA Tools Extension
      cuda-nvvp-10-0 - CUDA nvvp
      cuda-nvvp-10-1 - CUDA nvvp
      cuda-visual-tools-10-0 - CUDA visual tools
      cuda-visual-tools-10-1 - CUDA visual tools
      libcuda1-384 - Transitional package for nvidia-headless-418
      libnvidia-cfg1-410 - NVIDIA binary OpenGL/GLX configuration library
      libnvidia-common-410 - Shared files used by the NVIDIA libraries
      libnvidia-compute-410 - NVIDIA libcompute package
      libnvidia-decode-410 - NVIDIA Video Decoding runtime libraries
      libnvidia-diagnostic-410 - NVIDIA driver diagnostics utilities
      libnvidia-diagnostic-418 - NVIDIA driver diagnostics utilities
      libnvidia-encode-410 - NVENC Video Encoding runtime library
      libnvidia-fbc1-410 - NVIDIA OpenGL-based Framebuffer Capture runtime library
      libnvidia-gl-410 - NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
      libnvidia-ifr1-410 - NVIDIA OpenGL-based Inband Frame Readback runtime library
      nsight-compute-2019.4.0 - NVIDIA Nsight Compute
      nvidia-384-dev - Transitional package for nvidia-driver-418
      nvidia-384 - Transitional package for nvidia-driver-418
      nvidia-compute-utils-410 - NVIDIA compute utilities
      nvidia-dkms-410 - NVIDIA DKMS package
      nvidia-driver-410 - NVIDIA driver metapackage
      nvidia-headless-410 - NVIDIA headless metapackage
      nvidia-headless-no-dkms-410 - NVIDIA headless metapackage - no DKMS
      nvidia-kernel-common-410 - Shared files used with the kernel module
      nvidia-kernel-source-410 - NVIDIA kernel source package
      nvidia-libopencl1-384 - Transitional package for nvidia-headless-418
      nvidia-opencl-icd-384 - Transitional package for nvidia-headless-418
      nvidia-utils-410 - NVIDIA driver support binaries
      xserver-xorg-video-nvidia-410 - NVIDIA binary Xorg driver
      libnccl2 - NVIDIA Collectives Communication Library (NCCL) Runtime
      libnccl-dev - NVIDIA Collectives Communication Library (NCCL) Development Files
      nvidia-machine-learning-repo-ubuntu1804 - nvidia-machine-learning repository configuration files
      
      $ apt search nvidia  // 자세한 설명로 확인가능 
      


      • NVIDIA Site에서 Linux Driver  확인 및 Driver Version 정보확인 
      NVIDIA Driver를 보니, GRD(Game Ready Driver) 와 SD(Studio Driver)로 나누어지는데, 개발자는 SD를 사용한다고 한다고 하는데  RTX2060은 미지원 확인
        https://www.nvidia.com/Download/index.aspx?lang=en-us

      RTX-2060(Notebook) 최신 Version 430 확인
        https://www.nvidia.com/Download/driverResults.aspx/149138/en-us

      Version 418의 RTX 2060 상위 1f11 과 동일 확인
        https://download.nvidia.com/XFree86/Linux-x86_64/418.43/README/supportedchips.html

      • NVIDIA DRIVER 설치 (Version 430)
      설치를 진행 한 후 Ubuntu Reboot

      $ sudo apt install nvidia-driver-430 
      $ sudo apt install nvidia-prime  //상위 설치시 포함됨 
      
      //430 Version 관련부분 확인 
      $ apt-cache search nvidia | grep 430  
      $ dpkg -l libnvidia-gl-430
      
      $ nvidia-smi
      Wed Sep  4 22:30:27 2019       
      +-----------------------------------------------------------------------------+
      | NVIDIA-SMI 430.26       Driver Version: 430.26       CUDA Version: 10.2     |
      |-------------------------------+----------------------+----------------------+
      | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
      | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
      |===============================+======================+======================|
      |   0  GeForce RTX 2060    Off  | 00000000:01:00.0 Off |                  N/A |
      | N/A   54C    P0    N/A /  N/A |      0MiB /  5926MiB |      0%      Default |
      +-------------------------------+----------------------+----------------------+
                                                                                     
      +-----------------------------------------------------------------------------+
      | Processes:                                                       GPU Memory |
      |  GPU       PID   Type   Process name                             Usage      |
      |=============================================================================|
      |  No running processes found                                                 |
      +-----------------------------------------------------------------------------+
      
      //상위 GPU Memory 확인 및 GPU PID 확인 
      //After Reboot 
      
      $ cat /proc/driver/nvidia/version 
      NVRM version: NVIDIA UNIX x86_64 Kernel Module  430.26  Tue Jun  4 17:40:52 CDT 2019
      GCC version:  gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 
      



      • Lenovo Graphic Card 설정 (기본 Graphic Card를 Intel 선택하면 안됨)
      상위 Lenovo 설치가이드에서는 기본 Graphic Card를 Intel로 사용하라고 했으나 나의 경우는 현재 확장 듀얼모니터 사용하여, Intel 이 지원이 안됨
      (참고만 하고 추후 업데이트되면 다시 테스트 진행)

      $ prime-select query 
      nvidia
      
      $ sudo prime-select intel
      Info: selecting the intel profile
      $ prime-select query
      intel
      
      $ sudo prime-select nvidia
      
      $ prime-select query
      nvidia
      
      $ cat /etc/X11/xorg.conf
      

      prime-select 관련내용
        https://github.com/wildtruc/nvidia-prime-select



      • Lenovo Graphic Card 사양
      1. Intel UHD Graphics 630: 4K 지원 (Default 설정)
      2. NVIDIA RTX-2060 (laptop) :  4K 지원

        https://www.intel.co.kr/content/www/kr/ko/support/articles/000025673/graphics-drivers.html


      • 추후에 쉽게 설치 (동작가능예측, 미확인)
      $ sudo add-apt-repository ppa:graphics-drivers/ppa
      $ sudo apt-get update
      $ sudo apt install nvidia-driver-430 
      

        https://www.reddit.com/r/Ubuntu/comments/b761of/nvidia_2060_rtx/
        https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa
        https://www.linuxbabe.com/ubuntu/install-nvidia-driver-ubuntu-18-04


      1.3  Laptop  WIFI/Bluetooth/ UVC  테스트 

      Laptop의 아래의 테스트만 이제 하면 얼추 다 테스트가 되는 것 같다
      1. LAN :  동작확인
      2. WIFI : 동작확인 
      3. RF-Bluetooth :  동작확인
      4. UVC Camera : Laptop의 Camera가 USB에 연결  및 동작확인  

      $ rfkill list all
      0: hci0: Bluetooth
       Soft blocked: no
       Hard blocked: no
      1: phy0: Wireless LAN
       Soft blocked: no
       Hard blocked: no
      
      $ lsusb -t
      /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
      /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
      /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 10000M
      /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
          |__ Port 6: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M           // Laptop Camera 
          |__ Port 6: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
          |__ Port 9: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M      // Key board / Mouse
          |__ Port 14: Dev 5, If 0, Class=Wireless, Driver=btusb, 12M           // Bluetooth
          |__ Port 14: Dev 5, If 1, Class=Wireless, Driver=btusb, 12M
      
      $ sudo apt install cheese  // UVC Camera TEST 
      

      상위 항목들을 다 테스트를 진행을 했으니, 얼추 Laptop의 동작이 제대로 되는 것 같다.
      드디어 제대로 된 설치가 된것 같으나, ACPI 부분이 좀 문제가 있어서,  Battery 부분정보가 95%로 나옴 ( Window는 100%로 표시)

      일단 기본동작 및 기본 HW 테스트 동작을 확인하였으나, mini Displayport 부분은 케이블과 모니터가 없기에 테스트 하지 못했지만, 상위 NVIDIA Driver에서 지원가능확인


      1.4  Gparted 사용 후 Partition 정리 

      Gparted를 이용하여 Partition 관리부분으로 Ubuntu 설치가 다 된 후에 별도로 Parition들을 추가하여 만들어 각각의 관리하기 위해서 아래와 같이 정리 

      일반부팅을 해서 Gparted를 이용하여 Partition을 생성하면 아래와 같이 Partition을 수정 및 생성하면 Pending이 되고 진행되지 않는다.



      왼쪽 아래 계속 Pending이 되고 진행이되지 않으며, 반드시 Edit->Apply All operations 실행해야진행된다.



      1GB NVMe 
      - EFI Partition 구성  (BIOS-UEFI BOOT 도 지원)


      1GB SDA(HDD)
      - EFI Partition 구성됨  (BIOS-UEFI BOOT 도 지원)



      $ ls -l /dev/disk/by-uuid  // or blkid
      UUID 확인 후 아래에서 설정 
      
      $ sudo vi /etc/fstab  // Linux Partition 세부설정 및 확인 
      # / was on /dev/nvme0n1p2 during installation
      UUID=38d297a7-29db-4b04-b293-bc4aa9dcb5ba /               ext4    errors=remount-ro 0       1
      # /boot/efi was on /dev/nvme0n1p1 during installation
      UUID=E549-D056  /boot/efi       vfat    umask=0077      0       1
      /swapfile                                 none            swap    sw              0       0
      
      
      #
      # ls -l /dev/disk/by-uuid  //UUID 확인 후 설정 
      #
      # Virtual box
      # 4ea3fb0a-50e0-4e27-a347-ac57b67effe7 -> ../../nvme0n1p3
      UUID=4ea3fb0a-50e0-4e27-a347-ac57b67effe7 /home/jhlee/VirtualBox        ext4    errors=remount-ro 0       1
      
      # 
      # ls -l /dev/disk/by-uuid  // UUID 확인 후 설정 
      # Workspace
      # 59289fb6-1c09-40a8-ae5d-2cf08d7e39d5 -> ../../nvme0n1p4
      #
      UUID=59289fb6-1c09-40a8-ae5d-2cf08d7e39d5 /home/jhlee/Worksapce        ext4    errors=remount-ro 0       1
      
      $ cat /proc/cmdline     //최종 Kernel Parameter 확인 
      BOOT_IMAGE=/boot/vmlinuz-5.4.0-53-generic root=UUID=38d297a7-29db-4b04-b293-bc4aa9dcb5ba ro quiet splash vt.handoff=1
      
      

      Ubuntu 관련부분 설치
         https://ahyuo79.blogspot.com/search/label/Ubuntu%20x86%20DevelEnv

      9/01/2019

      Lenovo Laptop Window 와 Ubuntu 18.04 설치 및 문제사항 정리

      1.  Window / Ubuntu Dual Boot 설치 준비

      원래 나의 계획은 Laptop에 Ubuntu로만 전체 설치진행하고, Window 10의 경우,Ubuntu에서 VirtualBox를 이용하여 사용할 계획이였다. , 
      하지만, 막상 Ubuntu 18.04를 Laptop에 직접 설치 해보니, 
      Laptop의 각종 Driver들이 지원 되지 않으니 상위 계획을 할 수가 없어서 일단 아래와 같이 Ubuntu 와 Window 10를 별도로 설치 진행 후, 
      두 OS를 Dual Boot로 임시적으로 사용하기로 결정했다.

      • Lenovo Laptop Partition 구성 
      1. NVMe: Ubuntu 18.04
      2. HDD: Window 10 Home

      그래서, 기존에 이미 설치한 Ubuntu 18.04 LTS도 다시 전부 지우고 다시 Window 10을 130G만 잡고 다시 설치 진행하고, 
      Ubuntu를 재 설치하기로 결정 (Window 10도 벌써 2번째 설치 중)

      • 중요사항 
      이번 설치로 Ubuntu 18.04 와 Window 10 home을 Dual Boot로 진행하며, 
      BIOS에서 UEFI 모드로만 설치하기로 결정


      1.1 USB 시동디스크 와 UEFI 기본이해 

      기존 Window 설치프로그램으로 USB Boot를 만들려면 시간이 너무 오래  걸려서 그냥 ISO기반으로 
      RUFUS를 이용하여 USB Boot Disk를 만들어 설치하기로 결정

      우선 USB 시동디스크와 UEFI의 기본적인 이해를 아래의 사이트에서 해야한다.

      UEFI Booting 관련내용정리 (USB 시동디스크)
         https://ahyuo79.blogspot.com/2019/01/usb.html

      Window 10과 Ubuntu Dual Boot (별도움이 안됨)
        https://www.pcsuggest.com/dual-boot-windows-10-and-ubuntu-uefi/

      RUFUS Download 

      • File Download 및 준비사항 
      1. rufus-3.6.exe
      2. Window.iso
      3. Ubuntu.iso 

      아래와 같이 Window ISO Image를 Download 진행후 RUFUS로 USB Boot 진행



      1.2 Lenovo Laptop 정보확인 

      • BIOS 설정확인 
      1. Booting 시 F2를 눌러 BIOS Lenovo BIOS 진입 
      2. Information 정보 확인 
        1. Product Name: Legion Y540-151RH
        2. BIOS Version:  반드시 체크 
        3. Hard Disk: WDC WD10SPZX-24Z10
        4. NVME: SAMSUNG MZVLB1TOHALR-0000
        5. Secure Boot: Disabled
        6. Lenovo SN:  반드시 기억 
        7. UUID Number: 반드시 기억 
      3. Boot 정보확인
        1. Boot Mode: UEFI or Legacy Support
        2. USB Boot: Enabled
        3. PXE Boot to LAN: Enabled

      PXE Boot to LAN은 전형적으로 DHCP(BOOTP)를 사용하여 진행한다고 한다. 
      Laptop이 DHCPC가 되어 DHCP Server에게 각 Boot File 정보 와 IP를 할당 받고, TFTP 기반으로 Image를 다운받아 Booting을 진행

      오래전에 DHCP 기반의 Embeded Board 랑 똑같은 구조인것 같다. 


      2. Window 10 Home UEFI Mode로 재설치 진행 

      RUFUS를 이용하여 Window 10 Image를 외장형 32G USB에 Write하여, Booting USB Disk 생성하도록하자.

      • MS사에 제공하는 Window  ISO Image   
      MS사에 제공하며, Window ISO Image or USB에 직접설치가능 
      RUFUS를 사용 할꺼 이므로, ISO File로 가져와야함 



      • RUFUS를 이용하여 USB Boot Window Image 생성 
      일단 MS사꺼 보다 USB에 Window Image Write (속도가 빠름)


      • BIOS 설정변경 
      1. Booting 시 F2를 눌러 BIOS Lenovo BIOS 진입 
      2. Boot->Boot Mode : UEFI 변경
      3. Boot->USB Boot : Enable 
      4. Boot->EFI:  
        1. EFI Partition 중 우선순위를 USB를 최상위변경

      • UEFI Mode 설치후 EFI Partition 확인 
      Window 10 Home은 NVMe가 아닌 HDD 위치에 설치완료





      3. Ubuntu 18.04 설치 진행

      Ubuntu 18.04 Image Download하여 USB Image로 생성 후 BIOS에서 UEFI Mode 와 Legacy Mode로 각각 개별 설치진행하여 테스트 진행하였다

      • Boot Mode UEFI Mode 와 Legacy Mode 
      UEFI Mode  설정시 GRUB의  Kernel Parameter를 변경하지 않으면, 아예 동작되지 않으며, 변경하더라도 추후 다른 문제들이 발생

      Legacy Mode로 설정시
      GRUB 미수정 후 진행하며, ACPI 에러발생하지만 넘어가고 설치진행되지만 WIFI Driver 문제부터 다른 Driver의 문제가 발생하여
      완벽한 설치가 진행되지 않아 다른방법을 찾아야할 것같음

      • Boot Mode 선택 결론
      BIOS의 Legacy Mode로 설치 진행해야 할 것 같으며 문제사항은 해결해야 할것 같음 
      각각의 문제사항들을 정리

      • BIOS-ACPI(Advanced_Configuration_and_Power_Interface)정보
      ACPI 부분을 처음알아서 관련부분 자료조사 및 이해 
      Power Management기능으로 AP에서 사용하는 PMIC 와 Power Management 기능이라고 보면 되겠다. 
      거의 동일한 것으로 보인다.

      일단 BIOS의 ACPI 에러로 설치는 커녕 Ubuntu 실행도 불가능하지만, 다만 GRUB에서 acpi=off 옵션을 넣어 임시방편으로 실행가능하지만,
      제대로 동작되는 부분이 많이 없어 이 설치로 거의 Ubuntu 설치가 힘들 것 같다

      Lenovo의 ideapad 8 UEFI 부팅정보
      다 아는 내용이라 별 도움이 안되지만, 추후 내용이 BIOS Update되면 그때 확인하도록 하자.
        https://support.lenovo.com/co/ko/solutions/ht075710


      • Ubuntu UEFI USB Boot Image 생성 
      Rufus를 이용하여 UEFI Mode와 GPT로 설정하여 USB Boot Image 생성



      • BIOS 설정변경 
      1. Booting 시 F2를 눌러 BIOS Lenovo BIOS 진입 
      2. Boot->Boot Mode : UEFI 변경
      3. Boot->USB Boot : Enable 
      4. Boot->EFI:  
        1. EFI Partition 중 우선순위를 USB를 최상위로 변경

      • GRUB2 Boot Loader 
      Ubuntu Boot Loader로 현재 Version 2.x 이며  e를 선택하면 본인 직접 Kernel Parameter를 수정도 가능하며 이를 적용하려면 F10으로 부팅

      GRUB2의 세부설정  (Config File 부분)
        https://help.ubuntu.com/community/Grub2

      Common Kernel Options (ACPI 설정 옵션확인)
        https://help.ubuntu.com/community/BootOptions

      GRUB의 UEFI BOOT 관련정보


      • Ubuntu 18.04 설치 혹 실행시 에러발생 
      UEFI Mode 설치진행시, ACPI BIOS Error 발생 후 더 이상 진행되지않고 PAN만 오동작하여 소리가 커지고 문제발생(HDD Disk 소리인지 PAN소리인지 헷갈림)




      • BIOS-ACPI의 해결방법 
      Kernel Parameter 수정방법 or BIOS Update 권장
      ACPI(Advanced Configuration and Power Interface)로 Laptop에서 전원을 조절하는 부분으로 이에 관련된 Spec이 지원이 되어야한다. (현재 미지원)
        https://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/acpi-error-on-ubuntu-18-04-boot-4175628907/
        https://askubuntu.com/questions/953666/acpi-errors-when-booting-cant-boot
        https://rog.asus.com/forum/showthread.php?81684-Ubuntu-Installation-Issues-UEFI-amp-ACPI


      • BIOS-ACPI 임시해결시 다른문제발생 
      상위 GRUB으로 E를 눌러 Kernel Parameter에 acpi=off를 추가한 후 F10눌러 적용하면 상위문제가 해결되고 설치모드로 진입가능하지만 별도문제발생
      1. Ubuntu 설치모드 진입가능 
      2. 키보드는 동작가능 
      3. 터치패드 미동작 
      4. PAN의 오동작으로 소음이 점점 커짐 (처음에 PAN소리로 생각했는데, HDD소리같음)
      5. 무선네트워크 동작가능  
      임시해결방법은 근본적인 해결이 아니며, PAN인지 HDD의 오동작을 어떻게 막을 수가 없다
      너무 시끄러운 문제가 발생


      3.2 BIOS-Legacy Mode USB Ubuntu 설치 문제사항 

      참고로 착각하지 말아야 할 것은 아래의 Image Parition은 USB 이지 설치될 Linux의 Parition이 아니라는 것이다. 

      • Ubuntu Legacy USB Boot Image 생성 
      Rufus를 이용하여 Legacy Mode와 MBR로 설정하여 USB Boot Image 생성



      • BIOS 설정변경 
      1. Booting 시 F2를 눌러 BIOS Lenovo BIOS 진입 
      2. Boot->Boot Mode : Legacy Support 변경 
      3. Boot Priority : UEFI First 설정 
      4. Boot-> Legacy: Boot USB 우선순위 변경 (F5/F6) 

      • GRUB2 Boot Loader 
      Ubuntu 설치진행 (별도의 수정없음)

      • Ubuntu 설치진행모드 진입가능
      1. 상위와 동일하게 ACPI 에러는 발생하지만, 에러를 넘기고 설치모드로 진입가능
      2. 키보드 동작가능 
      3. 터치패드 동작가능 
      4. 무선네트워크 제대로 동작되지 않고 문제발생 (Driver 문제)
      5. 기본설치는 가능 

      Legacy에서는 설치가 가능하지만, 무선네트워크/유선네트워크 미동작하는 문제발생
      lspci로 살펴보면 Intel Wireless-AC 9560 감지확인가능

      유선네트워크로 연결 후 아래와 같이 하면 update/upgrade가 가능 (WIFI 동작안됨)

      웃긴것은 ifconfig도 동작되지도 않는데 아래 명령어가 동작된다.
      ifconfig를 위해서 별도로 net-tools 설치하면 동작가능한데, 이것 기본설치가 제대로 되지 않았다.

      $ sudo apt update 
      $ sudo apt upgrade 
      $ sudo apt install net-tools
      $ sudo apt install ndisgtk 
      $ sudo apt install ndiswrapper
      

      • WIFI 관련 문제사항
      한마디로 Window 의 NDIS 를 가져다가 쓰라는 이야기이며, 현재 방법은 상위방법으로 설치진행
        https://askubuntu.com/questions/1158716/wlan-driver-xubuntu-18-lenovo-legion-y540-15irh-laptop

      • 현재 PCIe Interface로 연결된 장치확인 및 Firmware 확인
      Laptop의 경우 기본적으로 모두 PCIe기반으로 연결이 되어있으므로, PCIe BUS에 연결된 것들을 확인하자.
      $ lspci
      00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
      00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
      00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
      00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
      00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
      00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
      00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
      00:14.3 Network controller: Intel Corporation Wireless-AC 9560 [Jefferson Peak] (rev 10)
      00:15.0 Serial bus controller [0c80]: Intel Corporation Device a368 (rev 10)
      00:15.1 Serial bus controller [0c80]: Intel Corporation Device a369 (rev 10)
      00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
      00:17.0 SATA controller: Intel Corporation Device a353 (rev 10)
      00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port 9 (rev f0)
      00:1d.5 PCI bridge: Intel Corporation Device a335 (rev f0)
      00:1e.0 Communication controller: Intel Corporation Device a328 (rev 10)
      00:1f.0 ISA bridge: Intel Corporation Device a30d (rev 10)
      00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
      00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
      00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
      01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f11 (rev a1)
      01:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev a1)
      01:00.2 USB controller: NVIDIA Corporation Device 1ada (rev a1)
      01:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device 1adb (rev a1)
      06:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981
      07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
      
      
      $ lspci -nnk | grep -e 0200 -e 0280 -A3
      00:14.3 Network controller [0280]: Intel Corporation Wireless-AC 9560 [Jefferson Peak] [8086:a370] (rev 10)
       Subsystem: Intel Corporation Device [8086:0034]
       Kernel driver in use: iwlwifi
       Kernel modules: iwlwifi
      --
      07:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
       Subsystem: Lenovo RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [17aa:38cd]
       Kernel driver in use: r8169
       Kernel modules: r8169
      
      //Intel Corporation Wireless-AC 9560 Firmware
      $ ls /lib/firmware/iwlwifi-9000-pu-b0-jf-b0-34.ucode
      /lib/firmware/iwlwifi-9000-pu-b0-jf-b0-34.ucode
      

      lspci -nnk 하면 사용하고 있는 Kernel Module도 같이 확인가능
      ( Kernel Module도 있는데 왜 작동이 안되는지 dmesg로 분석)

      • /lib/firmware 의 정보확인 (WIFI Firmware )
      상위 장소에 HW관련된 Firmware를 가지고 있으며, 이 정보를 확인
        https://www.intel.co.kr/content/www/kr/ko/support/articles/000005511/network-and-i-o/wireless-networking.html
        https://www.intel.com/content/www/us/en/support/articles/000005511/network-and-i-o/wireless-networking.html
        https://askubuntu.com/questions/1054012/driver-intel-ac-wireless-9560-ubuntu-18

      • 무선장치정보확인 
      유선은 동작이 되었으니, WIFI가 동작되지 않아 원인 분석 중이며, 아래와 같이 확인 가능 - 현재 해결중 
      $ rfkill list all
      0: ideapad_wlan: Wireless LAN
       Soft blocked: no
       Hard blocked: yes
      1: ideapad_bluetooth: Bluetooth
       Soft blocked: yes
       Hard blocked: yes
      2: hci0: Bluetooth
       Soft blocked: yes
       Hard blocked: no
      3: phy0: Wireless LAN
       Soft blocked: no
       Hard blocked: no
      
      
      $ dmesg | grep iwl
      [    3.005710] iwlwifi 0000:00:14.3: loaded firmware version 43.95eb4e97.0 op_mode iwlmvm
      [    3.051419] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x318
      [    3.154652] iwlwifi 0000:00:14.3: base HW address: 48:89:e7:32:1c:a2
      [    3.224101] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
      [    3.225468] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0

      참조자료
        https://askubuntu.com/questions/1158716/wlan-driver-xubuntu-18-lenovo-legion-y540-15irh-laptop


      3.3 ACPI 문제 분석  

      일단 대충 땜방으로 해결했으나, 좀 더 분석을 해보고 어떻게 할지 더 보자. 
      대충 분석하는 것이기때문에, 틀리수도 있음 

      • ACPI 에러분석 
      에러내용을 봐도 Power Management의 AML opcode  Parsing에서 에러가 나며, 
      한마디로 현재 Ubuntu에서 이 Laptop의 ACPI기능을 완벽히는 지원못해주는 것으로 보인다.

      ACPI AML Spec 


      $ uname -a
      Linux jhlee-Legion-Y540-15IRH 5.0.0-25-generic #26~18.04.1-Ubuntu SMP Thu Aug 1 13:51:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
      
      $ dmesg | grep ACPI
      [    0.000000] BIOS-e820: [mem 0x000000009e49e000-0x000000009eb8dfff] ACPI NVS
      [    0.000000] BIOS-e820: [mem 0x000000009eb8e000-0x000000009ec0dfff] ACPI data
      [    0.000000] efi:  ACPI=0x9ec0d000  ACPI 2.0=0x9ec0d014  SMBIOS=0x9dc50000  SMBIOS 3.0=0x9dc4e000  ESRT=0x9dc4cb98  MEMATTR=0x8cf62018 
      [    0.012110] ACPI: Early table checksum verification disabled
      [    0.012113] ACPI: RSDP 0x000000009EC0D014 000024 (v02 LENOVO)
      [    0.012116] ACPI: XSDT 0x000000009EBEE188 0000FC (v01 LENOVO CB-01    00000001      01000013)
      [    0.012121] ACPI: FACP 0x000000009EBF1000 00010C (v05 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012126] ACPI: DSDT 0x000000009EBBC000 0304E0 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012129] ACPI: FACS 0x000000009EB0D000 000040
      [    0.012131] ACPI: UEFI 0x000000009EC0C000 000236 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012133] ACPI: SSDT 0x000000009EC0A000 001B1C (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012136] ACPI: SSDT 0x000000009EC06000 0031D0 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012138] ACPI: UEFI 0x000000009EC05000 000042 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012140] ACPI: SSDT 0x000000009EC04000 00045A (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012143] ACPI: SSDT 0x000000009EC03000 000046 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012145] ACPI: TPM2 0x000000009EC02000 000034 (v03 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012147] ACPI: POAT 0x000000009EC01000 000055 (v03 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012150] ACPI: SSDT 0x000000009EBFC000 0044B6 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012152] ACPI: LPIT 0x000000009EBFB000 000094 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012154] ACPI: WSMT 0x000000009EBFA000 000028 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012157] ACPI: SSDT 0x000000009EBF9000 000C2F (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012159] ACPI: DBGP 0x000000009EBF8000 000034 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012161] ACPI: DBG2 0x000000009EBF7000 000061 (v00 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012164] ACPI: SSDT 0x000000009EBF6000 000896 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012166] ACPI: SSDT 0x000000009EBF3000 002F89 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012168] ACPI: ASF! 0x000000009EBF2000 0000A5 (v32 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012171] ACPI: HPET 0x000000009EBF0000 000038 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012173] ACPI: APIC 0x000000009EBEF000 00012C (v03 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012175] ACPI: MCFG 0x000000009EBED000 00003C (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012178] ACPI: SSDT 0x000000009EBB9000 002BBF (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012180] ACPI: DMAR 0x000000009EBB8000 000070 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012182] ACPI: SSDT 0x000000009EBB5000 002A9D (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012185] ACPI: SSDT 0x000000009EBB4000 00004C (v02 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012187] ACPI: FPDT 0x000000009EBB3000 000044 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012189] ACPI: BGRT 0x000000009EBB2000 000038 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      [    0.012197] ACPI: Local APIC address 0xfee00000
      [    0.200167] ACPI: PM-Timer IO Port: 0x1808
      [    0.200168] ACPI: Local APIC address 0xfee00000
      [    0.200175] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
      [    0.200175] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
      [    0.200176] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
      [    0.200176] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
      [    0.200177] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
      [    0.200177] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
      [    0.200178] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
      [    0.200178] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
      [    0.200179] ACPI: LAPIC_NMI (acpi_id[0x09] high edge lint[0x1])
      [    0.200179] ACPI: LAPIC_NMI (acpi_id[0x0a] high edge lint[0x1])
      [    0.200180] ACPI: LAPIC_NMI (acpi_id[0x0b] high edge lint[0x1])
      [    0.200180] ACPI: LAPIC_NMI (acpi_id[0x0c] high edge lint[0x1])
      [    0.200181] ACPI: LAPIC_NMI (acpi_id[0x0d] high edge lint[0x1])
      [    0.200181] ACPI: LAPIC_NMI (acpi_id[0x0e] high edge lint[0x1])
      [    0.200182] ACPI: LAPIC_NMI (acpi_id[0x0f] high edge lint[0x1])
      [    0.200182] ACPI: LAPIC_NMI (acpi_id[0x10] high edge lint[0x1])
      [    0.200245] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
      [    0.200246] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
      [    0.200247] ACPI: IRQ0 used by override.
      [    0.200248] ACPI: IRQ9 used by override.
      [    0.200250] Using ACPI (MADT) for SMP configuration information
      [    0.200251] ACPI: HPET id: 0x8086a201 base: 0xfed00000
      [    0.287523] ACPI: Core revision 20181213
      [    0.350148] PM: Registering ACPI NVS region [mem 0x9e49e000-0x9eb8dfff] (7274496 bytes)
      [    0.350148] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
      [    0.350148] ACPI: bus type PCI registered
      [    0.350148] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5   //acpipphp PCIe HotPlug 감지 아래소스 참고 
      [    0.352204] ACPI: Added _OSI(Module Device)
      [    0.352205] ACPI: Added _OSI(Processor Device)
      [    0.352206] ACPI: Added _OSI(3.0 _SCP Extensions)
      [    0.352207] ACPI: Added _OSI(Processor Aggregator Device)
      [    0.352207] ACPI: Added _OSI(Linux-Dell-Video)
      [    0.352208] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
      [    0.352209] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
      [    0.403571] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.TPLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.403578] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.403580] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.403630] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS01._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.403634] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.403635] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.403637] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS01._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.403639] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.403640] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.406600] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS02._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.406604] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.406605] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.406607] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS02._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.406609] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.406610] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.409555] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS03._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.409558] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.409560] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.409561] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS03._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.409563] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.409565] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.412506] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS04._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.412509] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.412511] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.412512] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS04._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.412514] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.412516] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.415455] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS05._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.415458] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.415459] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.418403] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS06._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.418406] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.418407] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.418409] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS06._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.418411] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.418412] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.421356] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS07._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.421359] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.421361] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.424304] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS08._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.424307] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.424308] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.427252] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS09._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.427255] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.427256] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.427257] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS09._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.427260] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.427261] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.430204] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS10._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.430207] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.430208] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.433154] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS11._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.433157] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.433158] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.436096] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS12._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.436099] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.436100] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.439045] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS13._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.439048] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.439049] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.441992] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS14._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.441995] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.441997] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.441998] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.HS14._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.442000] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.442002] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.444924] ACPI BIOS Error (bug): Could not resolve [\_SB.PCI0.XHC.RHUB.USR1], AE_NOT_FOUND (20181213/dswload2-160)
      [    0.444927] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20181213/psobject-221)
      [    0.444929] ACPI: Skipping parse of AML opcode: Scope (0x0010)
      [    0.444932] ACPI BIOS Error (bug): Could not resolve [\_SB.PCI0.XHC.RHUB.USR2], AE_NOT_FOUND (20181213/dswload2-160)
      [    0.444934] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20181213/psobject-221)
      [    0.444936] ACPI: Skipping parse of AML opcode: Scope (0x0010)
      [    0.444963] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS01._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.444965] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.444967] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.444968] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS01._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.444971] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.444972] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445004] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS02._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445007] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445008] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445010] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS02._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445012] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445013] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445045] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS03._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445048] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445049] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445051] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS03._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445053] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445054] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445086] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS04._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445089] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445090] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445091] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS04._PLD], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445094] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445095] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445126] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS05._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445129] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445130] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445161] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS06._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445163] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445165] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445192] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS07._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445195] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445196] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445224] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS08._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445227] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445228] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445256] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS09._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445258] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445259] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.445287] ACPI BIOS Error (bug): Failure creating [\_SB.PCI0.XHC.RHUB.SS10._UPC], AE_ALREADY_EXISTS (20181213/dswload2-324)
      [    0.445290] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20181213/psobject-221)
      [    0.445291] ACPI: Skipping parse of AML opcode: Method (0x0014)
      [    0.446394] ACPI BIOS Error (bug): Could not resolve [\_SB.PCI0.I2C2.TPD0], AE_NOT_FOUND (20181213/dswload2-160)
      [    0.446398] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20181213/psobject-221)
      [    0.446400] ACPI: Skipping parse of AML opcode: Scope (0x0010)
      [    0.446426] ACPI BIOS Error (bug): Could not resolve [\_SB.PCI0.I2C3.TPL1], AE_NOT_FOUND (20181213/dswload2-160)
      [    0.446429] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20181213/psobject-221)
      [    0.446430] ACPI: Skipping parse of AML opcode: Scope (0x0010)
      [    0.449074] ACPI: 12 ACPI AML tables successfully acquired and loaded
      [    0.464591] ACPI: Dynamic OEM Table Load:
      [    0.464604] ACPI: SSDT 0xFFFF9AD9B96C1F00 0000F4 (v02 PmRef  Cpu0Psd  00003000 INTL 20160422)
      [    0.465078] ACPI: \_SB_.PR00: _OSC native thermal LVT Acked
      [    0.466075] ACPI: Dynamic OEM Table Load:
      [    0.466082] ACPI: SSDT 0xFFFF9AD9B96BFC00 000400 (v02 PmRef  Cpu0Cst  00003001 INTL 20160422)
      [    0.466693] ACPI: Dynamic OEM Table Load:
      [    0.466699] ACPI: SSDT 0xFFFF9AD9B9F35800 000581 (v02 PmRef  Cpu0Ist  00003000 INTL 20160422)
      [    0.467398] ACPI: Dynamic OEM Table Load:
      [    0.467403] ACPI: SSDT 0xFFFF9AD9B96C6600 00011B (v02 PmRef  Cpu0Hwp  00003000 INTL 20160422)
      [    0.467911] ACPI: Dynamic OEM Table Load:
      [    0.467918] ACPI: SSDT 0xFFFF9AD9B9F35000 000724 (v02 PmRef  HwpLvt   00003000 INTL 20160422)
      [    0.468765] ACPI: Dynamic OEM Table Load:
      [    0.468771] ACPI: SSDT 0xFFFF9AD9B9F37800 0005FC (v02 PmRef  ApIst    00003000 INTL 20160422)
      [    0.469469] ACPI: Dynamic OEM Table Load:
      [    0.469475] ACPI: SSDT 0xFFFF9AD9B96B8C00 000317 (v02 PmRef  ApHwp    00003000 INTL 20160422)
      [    0.470185] ACPI: Dynamic OEM Table Load:
      [    0.470191] ACPI: SSDT 0xFFFF9AD9B9F81000 000AB0 (v02 PmRef  ApPsd    00003000 INTL 20160422)
      [    0.471527] ACPI: Dynamic OEM Table Load:
      [    0.471533] ACPI: SSDT 0xFFFF9AD9B96BC000 00030A (v02 PmRef  ApCst    00003000 INTL 20160422)
      [    0.477238] ACPI: EC: EC started
      [    0.477239] ACPI: EC: interrupt blocked
      [    0.492285] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as first EC
      [    0.492286] ACPI: \_SB_.PCI0.LPCB.EC0_: GPE=0x2, EC_CMD/EC_SC=0x66, EC_DATA=0x62
      [    0.492287] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as boot DSDT EC to handle transactions
      [    0.492288] ACPI: Interpreter enabled
      [    0.492341] ACPI: (supports S0 S3 S4 S5)
      [    0.492342] ACPI: Using IOAPIC for interrupt routing
      [    0.492386] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
      [    0.492959] ACPI: Enabled 10 GPEs in block 00 to 7F
      [    0.494043] ACPI: Power Resource [PG00] (on)
      [    0.498501] ACPI: Power Resource [PUBS] (on)
      [    0.499519] ACPI: Power Resource [BTPR] (on)
      [    0.501236] ACPI: Power Resource [USBC] (on)
      [    0.501446] ACPI: Power Resource [PAUD] (on)
      [    0.505921] ACPI: Power Resource [PXP] (off)
      [    0.513409] ACPI: Power Resource [PXP] (off)
      [    0.515322] ACPI: Power Resource [V0PR] (on)
      [    0.515548] ACPI: Power Resource [V1PR] (on)
      [    0.515769] ACPI: Power Resource [V2PR] (on)
      [    0.518096] ACPI: Power Resource [PXTC] (on)
      [    0.518595] ACPI: Power Resource [PXTC] (off)
      [    0.520702] ACPI: Power Resource [WRST] (on)
      [    0.523071] ACPI: Power Resource [PIN] (off)
      [    0.523600] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
      [    0.562428] ACPI: EC: interrupt unblocked
      [    0.562456] ACPI: EC: event unblocked
      [    0.562478] ACPI: \_SB_.PCI0.LPCB.EC0_: GPE=0x2, EC_CMD/EC_SC=0x66, EC_DATA=0x62
      [    0.562479] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as boot DSDT EC to handle transactions and events
      [    0.562561] ACPI: bus type USB registered
      [    0.612565] PCI: Using ACPI for IRQ routing
      [    0.714118] pnp: PnP ACPI init
      [    0.714239] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
      [    0.714629] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
      [    0.714973] system 00:02: Plug and Play ACPI device, IDs PNP0c02 (active)
      [    0.715178] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active)
      [    0.715312] system 00:04: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
      [    0.715348] pnp 00:05: Plug and Play ACPI device, IDs PNP0303 (active)
      [    0.716871] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
      [    0.717454] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
      [    0.717663] pnp: PnP ACPI: found 8 devices
      [    1.310148] ACPI: AC Adapter [ADP0] (on-line)
      [    1.310219] ACPI: Lid Switch [LID0]
      [    1.310246] ACPI: Power Button [PWRB]
      [    1.408535] battery: ACPI: Battery Slot [BAT0] (battery present)
      [    1.519238] [Firmware Bug]: ACPI(PEGP) defines _DOD but not _DOS
      [    1.519281] ACPI: Video Device [PEGP] (multi-head: yes  rom: yes  post: no)
      [    3.213312] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20181213/nsarguments-66)
      


      • ACPI Dump 분석 
      로그를 대충 보면, 일반적인 Power Resource는 가능한 것으로 보인다. 

      $ sudo apt-get update -y
      $ sudo apt-get install -y acpidump
      $ sudo acpidump -s
      ACPI: SSDT 0x0000000000000000 000046 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: MCFG 0x0000000000000000 00003C (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: ASF! 0x0000000000000000 0000A5 (v32 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: APIC 0x0000000000000000 00012C (v03 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 0031D0 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: TPM2 0x0000000000000000 000034 (v03 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 002BBF (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: DSDT 0x0000000000000000 0304E0 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 000896 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: WSMT 0x0000000000000000 000028 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 0000F4 (v02 PmRef  Cpu0Psd  00003000 INTL 20160422)
      ACPI: LPIT 0x0000000000000000 000094 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 0044B6 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: UEFI 0x0000000000000000 000236 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: DBG2 0x0000000000000000 000061 (v00 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 002A9D (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: POAT 0x0000000000000000 000055 (v03 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 00045A (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: DMAR 0x0000000000000000 000070 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: FACP 0x0000000000000000 00010C (v05 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: FPDT 0x0000000000000000 000044 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 001B1C (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 002F89 (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: DBGP 0x0000000000000000 000034 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: HPET 0x0000000000000000 000038 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 000C2F (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: UEFI 0x0000000000000000 000042 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: FACS 0x0000000000000000 000040
      ACPI: BGRT 0x0000000000000000 000038 (v01 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 00004C (v02 LENOVO CB-01    00000001 ACPI 00040000)
      ACPI: SSDT 0x0000000000000000 000317 (v02 PmRef  ApHwp    00003000 INTL 20160422)
      ACPI: SSDT 0x0000000000000000 000724 (v02 PmRef  HwpLvt   00003000 INTL 20160422)
      ACPI: SSDT 0x0000000000000000 000581 (v02 PmRef  Cpu0Ist  00003000 INTL 20160422)
      ACPI: SSDT 0x0000000000000000 00030A (v02 PmRef  ApCst    00003000 INTL 20160422)
      ACPI: SSDT 0x0000000000000000 000AB0 (v02 PmRef  ApPsd    00003000 INTL 20160422)
      ACPI: SSDT 0x0000000000000000 0005FC (v02 PmRef  ApIst    00003000 INTL 20160422)
      ACPI: SSDT 0x0000000000000000 00011B (v02 PmRef  Cpu0Hwp  00003000 INTL 20160422)
      ACPI: SSDT 0x0000000000000000 000400 (v02 PmRef  Cpu0Cst  00003001 INTL 20160422)

      참조자료
        https://bugzilla.redhat.com/show_bug.cgi?id=1610727

      상위 acidump로 본 각 Table 정보 및 Spec

      • 상위 로그분석 및 커널부분 (ACPI Linux Kernel Driver)
      ACPI라는 것이 PCIe Interface로 연결되어 Hotplug로 잡혀 Kernel에서 상위 Driver를 지원을 해줘야하며, 관련 Linux Kernel Driver를 각각 살펴보자.

      • Linux Kernel HotPlug 소스 (관련 ACPI Core)
      아래 소스을 보면 HotPlug기능을 대충이해가능하며, 참고 
      1. DRIVER_DESC 
      2. DRIVER_VERSION 
        https://elixir.bootlin.com/linux/latest/source/drivers/pci/hotplug/acpiphp_core.c

      • Linux Kernel 관련 ACPI Log Kernel 소스 
      1. ACPI_INFO
      2. ACPI_ERROR
      3. ACPI_BIOS_ERROR 
      상위 내용들을 아래에서 찾아 Kernel에서 검색해서 상위동작부분 LOG 파악가능
        https://elixir.bootlin.com/linux/latest/source/include/acpi/acoutput.h#L205

      • ACPI 에러 현재결론 
      BIOS의 ACPI의 문제해결은 어려울 것 같으며, 인터넷을 찾아봐도 답은 BIOS Update라고 하는데, 
      이미 최신 BIOS로 Upgrade했으며, Downgrade를 해야 하나 생각중이다
      역시 Linux를 설치하려면, 오래된 Laptop이 최고인데, 새로운 Laptop은 새 기능이 많아 아직 지원되지 않는게 많다.

      결론적으로 소스를 보면, Linux Kernel의 PCIe Driver에서 ACPI부분을 지원이 가능해야 제대로된 동작이 가능하며, BIOS문제로만 치부될 사항은 아닌 것 같다

      대충구조를 보면, Table을 만들어 관리하고 이 기준으로 통신하는 것 같은데, 일단 ACPI는 관련부분에러는 포기하고, 최대한 에러없도록 설치하자

      편히 설치가능하면 좋은데 T.T 지속적인 문제 발생이 문제로군.