Nowe posty

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - overcq

Strony: [1] 2 3 4
1
Utworzyłem pomyślnie środowisko testowe bazujące na “qemu”.
Na dysku typu “raw” będącym plikiem zainstalowałem podstawowy system Gentoo Linux, w którym umieściłem kernel skompilowany na zewnątrz. Natomiast “qemu-system-x86_64” uruchamiam z parametrami, które tworzą prawie identyczną maszynę jak ‘host’, gdzie kompiluję. Dzięki temu nie muszę specjalnie dla kernela działającego w emulatorze włączać dodatkowych opcji poza tymi, których używam w rzeczywistym systemie.
Czyli “qemu” uruchamia system z podłączonego dysku, bez podawania opcji “-kernel” i “-initrd”. I mogę się normalnie w ‘konsoli’ zalogować na konto “root”, gdzie następnie uruchamiam program testujący.

Problemem podczas instalacji tego systemu było użycie przez program tworzący plik konfiguracyjny “grub” nieprawidłowych ‘uuid’ systemów plików będących na “/dev/loop*” w środowisku “chroot”. Musiałem ręcznie poprawić w pliku konfiguracyjnym na zwykłe “/dev/sda3”.

Włączyłem w konfiguracji kernela umieszczenie symboli do ‘debugowania’, z tym że skrypt “gdb” (tworzony poleceniem “make scripts_gdb” w katalogu źródeł kernela) podczas wczytywania do “gdb” wypisuje komunikat:
Python Exception <class 'gdb.error'>: 'hrtimer_resolution' has unknown type; cast it to its declared type
Więc raczej jest bezużyteczny.

Błąd opisywany w pierwszej wiadomości też poprawiłem. Był w innym miejscu niż wskazane pętle. Dodanie tych pętli musiało zmieniać postać wynikowego kodu maszynowego, co powodowało, że błąd się ujawniał.

Natomiast dlaczego modyfikuję kernel Linuksa, a nie systemu z rodziny BSD? Ponieważ ma lepiej działające sterowniki mimo skomplikowania całości.

2
Mam inne założenia niż zuniwersalizowany system plików Linuksa i chcę wykorzystać szybkość tego systemu plików. Na przykład: każdy katalog oraz odrębnie każdy plik ma unikalny identyfikator w całym systemie plików, nie ma odrębnych “inode” na dysku (są tablice katalogów i plików). Stąd wiadomo, że będzie potrzebne inne środowisko użytkownika.

Ogólnie to staram się wydostać z założenia, że wszystko jest plikiem albo że używa się tekstu, i zrobić interfejsy binarne do konkretnych rzeczy, a nie traktowanych tak samo jak coś innego. Ten eksperymentalny system plików to dopiero początek. Jest on zoptymalizowany do jak najrzadszego zapisu metadanych na dysk i wykonywania wszystkiego w pamięci operacyjnej. Poza zapisem zawartości plików, która i tak zdaje się przechodzi przez pamięć podręczną kernela.

Dlatego chcę wykorzystać znajdujące się w kernelu sterowniki fizycznych urządzeń, a wszystko inne pominąć. Po zmianach to już nie będzie Linux. I dlatego to repozytorium nie jest przeznaczone do scalenia z tym, z którego powstał ‘fork’.

3
Dzięki za pomoc. Natomiast obecnie mam problem z uruchomieniem w “qemu” minimalnego systemu, ponieważ potrzebuję w nim uruchomić program testujący.
Próbowałem w “qemu” zainstalować na podłączonym dysku “stage3” systemu Gentoo, ale po restarcie nie rozpoznał partycji “root”. Jeszcze raz spróbuję, ale teraz z zewnątrz, spreparować obraz dysku typu “raw” i uruchomić. Lecz to najwcześniej za tydzień.

4
W tym kodzie menedżera nowo tworzonego systemu plików znajdującego się kernelu Linuksa zakomentowanie linii 3484-3499 powoduje, że działa on poprawnie dla testów tworzenia katalogów i plików, a odkomentowanie powoduje, że kernel się blokuje. Zamieniałem też linie z “strcmp” na
&& !strncmp( H_oux_E_fs_Q_device_S[ device_i ].directory[ directory_i ].name, name_, n + 1 )
i nadal się blokuje.
Obecnie nie używałem jeszcze nazw plików i katalogów nigdzie oprócz ich zapisu na dysk i wczytywania z dysku; podczas tego drugiego są sprawdzane. Więc nie wiem, gdzie mogłyby zostać uszkodzone. Natomiast “directory_n” i “file_n” są wypisywane podczas zapisu na dysk i są małymi wartościami (mniej niż 10).
Naprawiłem już wiele błędów w tym menedżerze, ale tym razem kompletnie nie wiem, czego szukać. Czy “strcmp” nie może być użyte, a jest używane? Ale jak wyszukałem, to “strcmp” jest używane w innych miejscach w kernelu Linuksa.
Kernel się blokuje tak, jakby się zapętlił. Nie wypisuje żadnego komunikatu błędu.

5
Inne / Odp: Odpowiednie wykorzystanie rdzeni P i E procesora
« dnia: 2024-07-28, 08:00:47 »
A w przypadku, gdy uruchamiane są wątki nieobliczeniowe, tylko mało obciążające procesor, mimo nie zajętych rdzeni P, to czy Linux przydziela je do rdzenia E?
To jest decydujące o tym, czy przydzielać poszczególne wątki w programie do określonych rdzeni.

6
Inne / Odpowiednie wykorzystanie rdzeni P i E procesora
« dnia: 2024-07-26, 17:52:01 »
Przeczytałem niedawno o tym, że w nowych procesorach Intela (posiadających rdzenie ‘performance’ i ‘efficient’) jest używany program zwany “Thread Director”, który — jak się domyślam — ma za zadanie wybierać dla uruchomionych wątków rdzeń, na którym się wykonują. Czy najnowszy Linux poprawnie współpracuje z “Thread Director”?

Czy lepiej jest pozostawić przydzielanie rdzeni dla wątków programowi “Thread Director” czy samodzielnie wybierać w programie rdzenie dla każdego wątku (przy użyciu “pthread_setaffinity_np”)?

7
Konfiguracja / Odp: DNS i WWW na virtualbox
« dnia: 2024-07-23, 16:46:11 »
Dziękujesz za sugestię, ale czy poprawiłeś wpis w pliku “hosts” na ‘hoście’?
I co dokładnie poprawiłeś?

8
Konfiguracja / Odp: DNS i WWW na virtualbox
« dnia: 2024-07-22, 16:19:16 »
To może być prosty błąd.
Dodałeś do hosta: 192.168.0.106, a ‘server’ ‘www’ ma adres 192.168.0.108. Więc próbuje się łączyć na port 80 do komputera z ‘serverem’ ‘dns’.

9
Skąd w ogóle wziąłeś:
* sis-a (na tej płycie nie ma karty SIS)
* Komunikat błędu z pierwszej odpowiedzi
?
  • W wiadomości na grupie ‘mailowej’ pod podanym ‘linkiem’ jest informacja, że producent oznaczył urządzenie SiS jako Realtek RTL8201CL.
  • Komunikat błędu pojawia się, gdy uruchamiam Chrome na Linux Lite 7.0.

10
Na forum był już wątek na ten temat. Szczególnie polecam ten link.

Czyli:

Podaj wynik:
lspci

Załaduj moduł “sis190”:
sudo modprobe sis190

Ponownie podaj wynik:
lspci

11
Nie podałeś komunikatu błędu, który pojawia się w terminalu po uruchomieniu “google-chrome-stable”:
FATAL:credentials.cc(127)] Check failed: . : Permission denied (13)
Jednorazowe (wymagające wykonania polecenia w terminalu po każdym uruchomieniu systemu) rozwiązanie dla LiveDVD jest tutaj.

12
Dlatego używam Gentoo i utworzyłem ‘patcha’ do sterowników w wersji 390 do trochę innego komputera z 2013 roku i działa bardzo dobrze. Kernel też wymagał drobnych poprawek eksportu. Natomiast wymagany jest “xorg-server” w wersji co najwyżej 21.
Ciekawe, dlaczego Open Suse działa? Ma sterowniki Nouveau czy może dostosowane?

13
Instalacja oprogramowania / Nowa wersja libreoffice
« dnia: 2024-06-30, 15:25:44 »
Aktualizuję system i zauważyłem ogromny przeskok wersji libreoffice. U mnie na Gentoo są możliwe do instalacji:
$ equery l -op libreoffice
 * Searching for libreoffice ...
[-P-] [  ] app-office/libreoffice-7.6.4.1:0
[IP-] [  ] app-office/libreoffice-7.6.7.2:0
[-P-] [  ] app-office/libreoffice-24.2.4.2-r1:0
[-P-] [  ] app-office/libreoffice-24.2.4.2-r10:0
[-P-] [ -] app-office/libreoffice-24.2.9999:0
[-P-] [ -] app-office/libreoffice-9999:0


Wie ktoś, skąd tak ogromny przeskok wersji? Czy to jest inna rodzina programu libreoffice? A może teraz wersja pochodzi od roku wydania?
Nigdzie nie mogę znaleźć informacji, skąd wzięła się ta nowa wersja.

14
C/C++ / Odp: Jaki kod błędu zwracać z kernela?
« dnia: 2024-06-09, 09:18:02 »
A “EINVAL” to nie w przypadku podawania do procedury niepoprawnego argumentu?
Na przykład w pliku “fs/ext4/inode.c” są zwracane następujące błędy:
EAGAIN
EBUSY
EFBIG
EFSCORRUPTED
EINVAL
EIO
ENOMEM
ENOSPC
ENOTBLK
EOPNOTSUPP
EOVERFLOW
EPERM
ERANGE
EROFS

Wygląda na to, że panuje pełna dowolność, brak specyfikacji. Niektóre błędy mówią o tym, że coś jest uszkodzone czyli system plików nie jest ‘clean’ (“EFSCORRUPTED”, przy czym jest to niestandardowy błąd), inne – że skończył się zakres liczby (“EOVERFLOW”), jeszcze inne – że system plików jest tylko do odczytu mimo błędu (“EROFS”), podczas gdy “EIO” jest jako ‘default’, głównie przy operacjach odczytu/zapisu.

15
C/C++ / Jaki kod błędu zwracać z kernela?
« dnia: 2024-06-08, 18:26:47 »
Tworzę pewien moduł związany z systemem plików dla kernela Linuksa i zastanawiam się, jaki błąd ma zwracać ‘syscall’ w następującym przypadku: jeśli podczas montowania systemu plików wykryto błąd integralności struktury systemu plików uniemożliwiający zamontowanie. Jeśli by wybierać z podstawowych błędów z pliku “/usr/include/asm-generic/errno-base.h”:
#define EPERM            1      /* Operation not permitted */
#define ENOENT           2      /* No such file or directory */
#define ESRCH            3      /* No such process */
#define EINTR            4      /* Interrupted system call */
#define EIO              5      /* I/O error */
#define ENXIO            6      /* No such device or address */
#define E2BIG            7      /* Argument list too long */
#define ENOEXEC          8      /* Exec format error */
#define EBADF            9      /* Bad file number */
#define ECHILD          10      /* No child processes */
#define EAGAIN          11      /* Try again */
#define ENOMEM          12      /* Out of memory */
#define EACCES          13      /* Permission denied */
#define EFAULT          14      /* Bad address */
#define ENOTBLK         15      /* Block device required */
#define EBUSY           16      /* Device or resource busy */
#define EEXIST          17      /* File exists */
#define EXDEV           18      /* Cross-device link */
#define ENODEV          19      /* No such device */
#define ENOTDIR         20      /* Not a directory */
#define EISDIR          21      /* Is a directory */
#define EINVAL          22      /* Invalid argument */
#define ENFILE          23      /* File table overflow */
#define EMFILE          24      /* Too many open files */
#define ENOTTY          25      /* Not a typewriter */
#define ETXTBSY         26      /* Text file busy */
#define EFBIG           27      /* File too large */
#define ENOSPC          28      /* No space left on device */
#define ESPIPE          29      /* Illegal seek */
#define EROFS           30      /* Read-only file system */
#define EMLINK          31      /* Too many links */
#define EPIPE           32      /* Broken pipe */
#define EDOM            33      /* Math argument out of domain of func */
#define ERANGE          34      /* Math result not representable */
“EIO”? Ale wydaje się, że jest bardziej związane z błędem odczytu/zapisu.
“EFAULT”?
Brakuje czegoś takiego jak “EDATA”.

Strony: [1] 2 3 4