Ошибка компиляции ядра в iw_ndis.c [duplicate]

У меня есть hp pavilion dm3t с графикой Intel HD, работающей на ubuntu 10.10 64 бит. Я пытаюсь скомпилировать и установить исправленное ядро ​​в соответствии с этим, https://launchpad.net/~kamalmostafa/+archive/linux-kamal-mjgbacklight

Итак, я загрузил tarball отсюда (связанный на странице выше): https://launchpad.net/~kamalmostafa/+archive/linux-kamal-mjgbacklight

Я распаковал его в каталог, введён каталог и сделал:

make defconfig

Я не уверен, что это то, что я должен был сделать, но это было успешно, поэтому я сделал:

make

, который, казалось, работал до тех пор, пока он не дал эти ошибки:

ubuntu/ndiswrapper/iw_ndis.c:1966: error: unknown field ‘num_private’ specified in initializer ubuntu/ndiswrapper/iw_ndis.c:1966: warning: initialization makes pointer from integer without a cast ubuntu/ndiswrapper/iw_ndis.c:1967: error: unknown field ‘num_private_args’ specified in initializer ubuntu/ndiswrapper/iw_ndis.c:1967: warning: excess elements in struct initializer ubuntu/ndiswrapper/iw_ndis.c:1967: warning: (near initialization for ‘ndis_handler_def’) ubuntu/ndiswrapper/iw_ndis.c:1970: error: unknown field ‘private’ specified in initializer ubuntu/ndiswrapper/iw_ndis.c:1970: warning: initialization makes integer from pointer without a cast ubuntu/ndiswrapper/iw_ndis.c:1970: error: initializer element is not computable at load time ubuntu/ndiswrapper/iw_ndis.c:1970: error: (near initialization for ‘ndis_handler_def.num_standard’) ubuntu/ndiswrapper/iw_ndis.c:1971: error: unknown field ‘private_args’ specified in initializer ubuntu/ndiswrapper/iw_ndis.c:1971: warning: initialization from incompatible pointer type make[2]: *** [ubuntu/ndiswrapper/iw_ndis.o] Error 1 make[1]: *** [ubuntu/ndiswrapper] Error 2 make: *** [ubuntu] Error 2

Как я могу скомпилировать и установить это ядро ​​успешно? Я новичок в этом и буду признателен за любую помощь.

1
задан 31 December 2010 в 02:12

16 ответов

Учитывая ваш последний вопрос о подсветке вашего ноутбука, вам не нужно компилировать ядро ​​для использования патча. Вам просто нужно добавить PPA в источники программного обеспечения вашей системы.

подсветка объяснила, как действовать в его комментарии:

Просто добавьте PPA в свою систему , Запустите терминал и запустите sudo apt-add-repository ppa:kamalmostafa/linux-kamal-mjgbacklight, затем sudo apt-get update и, наконец, выполните обновление с помощью sudo apt-get upgrade. Как вы можете прочитать в приведенной выше ссылке на PPA, вам может потребоваться добавить acpi_backlight=vendor в строку linux записи grub для нового ядра (см. Комментарии в этом ответе о том, как добавлять параметры в ядро ​​во время загрузки ).

Весь процесс уже подробно описан в нижней части комментария .

2
ответ дан 25 July 2018 в 22:20

Поля num_private и num_private_args определяются только при определении CONFIG_WEXT_PRIV во время компиляции ядра, поэтому вам нужно добавить строки # ifdef / # endif здесь: iw_ndis.c:

const struct iw_handler_def ndis_handler_def = { .num_standard = sizeof(ndis_handler) / sizeof(ndis_handler[0]), #ifdef CONFIG_WEXT_PRIV .num_private = sizeof(priv_handler) / sizeof(priv_handler[0]), .num_private_args = sizeof(priv_args) / sizeof(priv_args[0]), #endif .standard = (iw_handler *)ndis_handler, #ifdef CONFIG_WEXT_PRIV .private = (iw_handler *)priv_handler, .private_args = (struct iw_priv_args *)priv_args, #endif .get_wireless_stats = get_iw_stats, };

Однако это не все. Затем вы также получите сообщение об ошибке wrapndis.c, поэтому вам нужно найти строки со следующим оператором if (примерно в строке 1820) и обернуть это в # ifdef / # endif. #ifdef CONFIG_WEXT_PRIV, если (wnd-> physical_medium == NdisPhysicalMediumWirelessLan) {net_dev-> wireless_handlers = & amp; ndis_handler_def; } #endif Должен добавить, что я пытаюсь скомпилировать это сам и не проверял ndiswrapper, выполнив это так YMMV.

Вышеупомянутое для wrapndis неверно, кажется, что CONFIG_WIRELESS_EXT не установлен в (моем) ядре конфигурации. Если бы это было тогда, я не получил бы эту ошибку.

0
ответ дан 25 July 2018 в 22:20

Учитывая ваш последний вопрос о подсветке вашего ноутбука, вам не нужно компилировать ядро ​​для использования патча. Вам просто нужно добавить PPA в источники программного обеспечения вашей системы.

подсветка объяснила, как действовать в его комментарии:

Просто добавьте PPA в свою систему , Запустите терминал и запустите sudo apt-add-repository ppa:kamalmostafa/linux-kamal-mjgbacklight, затем sudo apt-get update и, наконец, выполните обновление с помощью sudo apt-get upgrade. Как вы можете прочитать в приведенной выше ссылке на PPA, вам может потребоваться добавить acpi_backlight=vendor в строку linux записи grub для нового ядра (см. Комментарии в этом ответе о том, как добавлять параметры в ядро ​​во время загрузки ).

Весь процесс уже подробно описан в нижней части комментария .

2
ответ дан 26 July 2018 в 20:48

Поля num_private и num_private_args определяются только при определении CONFIG_WEXT_PRIV во время компиляции ядра, поэтому вам нужно добавить строки # ifdef / # endif здесь: iw_ndis.c:

const struct iw_handler_def ndis_handler_def = { .num_standard = sizeof(ndis_handler) / sizeof(ndis_handler[0]), #ifdef CONFIG_WEXT_PRIV .num_private = sizeof(priv_handler) / sizeof(priv_handler[0]), .num_private_args = sizeof(priv_args) / sizeof(priv_args[0]), #endif .standard = (iw_handler *)ndis_handler, #ifdef CONFIG_WEXT_PRIV .private = (iw_handler *)priv_handler, .private_args = (struct iw_priv_args *)priv_args, #endif .get_wireless_stats = get_iw_stats, };

Однако это не все. Затем вы также получите сообщение об ошибке wrapndis.c, поэтому вам нужно найти строки со следующим оператором if (примерно в строке 1820) и обернуть это в # ifdef / # endif. #ifdef CONFIG_WEXT_PRIV, если (wnd-> physical_medium == NdisPhysicalMediumWirelessLan) {net_dev-> wireless_handlers = & amp; ndis_handler_def; } #endif Должен добавить, что я пытаюсь скомпилировать это сам и не проверял ndiswrapper, выполнив это так YMMV.

Вышеупомянутое для wrapndis неверно, кажется, что CONFIG_WIRELESS_EXT не установлен в (моем) ядре конфигурации. Если бы это было тогда, я не получил бы эту ошибку.

0
ответ дан 26 July 2018 в 20:48

Учитывая ваш последний вопрос о подсветке вашего ноутбука, вам не нужно компилировать ядро ​​для использования патча. Вам просто нужно добавить PPA в источники программного обеспечения вашей системы.

подсветка объяснила, как действовать в его комментарии:

Просто добавьте PPA в свою систему , Запустите терминал и запустите sudo apt-add-repository ppa:kamalmostafa/linux-kamal-mjgbacklight, затем sudo apt-get update и, наконец, выполните обновление с помощью sudo apt-get upgrade. Как вы можете прочитать в приведенной выше ссылке на PPA, вам может потребоваться добавить acpi_backlight=vendor в строку linux записи grub для нового ядра (см. Комментарии в этом ответе о том, как добавлять параметры в ядро ​​во время загрузки ).

Весь процесс уже подробно описан в нижней части комментария .

2
ответ дан 2 August 2018 в 03:48

Поля num_private и num_private_args определяются только при определении CONFIG_WEXT_PRIV во время компиляции ядра, поэтому вам нужно добавить строки # ifdef / # endif здесь: iw_ndis.c:

const struct iw_handler_def ndis_handler_def = { .num_standard = sizeof(ndis_handler) / sizeof(ndis_handler[0]), #ifdef CONFIG_WEXT_PRIV .num_private = sizeof(priv_handler) / sizeof(priv_handler[0]), .num_private_args = sizeof(priv_args) / sizeof(priv_args[0]), #endif .standard = (iw_handler *)ndis_handler, #ifdef CONFIG_WEXT_PRIV .private = (iw_handler *)priv_handler, .private_args = (struct iw_priv_args *)priv_args, #endif .get_wireless_stats = get_iw_stats, };

Однако это не все. Затем вы также получите сообщение об ошибке wrapndis.c, поэтому вам нужно найти строки со следующим оператором if (примерно в строке 1820) и обернуть это в # ifdef / # endif. #ifdef CONFIG_WEXT_PRIV, если (wnd-> physical_medium == NdisPhysicalMediumWirelessLan) {net_dev-> wireless_handlers = & amp; ndis_handler_def; } #endif Должен добавить, что я пытаюсь скомпилировать это сам и не проверял ndiswrapper, выполнив это так YMMV.

Вышеупомянутое для wrapndis неверно, кажется, что CONFIG_WIRELESS_EXT не установлен в (моем) ядре конфигурации. Если бы это было тогда, я не получил бы эту ошибку.

0
ответ дан 2 August 2018 в 03:48

Поля num_private и num_private_args определяются только при определении CONFIG_WEXT_PRIV во время компиляции ядра, поэтому вам нужно добавить строки # ifdef / # endif здесь: iw_ndis.c:

  const struct iw_handler_def ndis_handler_def  = {.num_standard = sizeof (ndis_handler) / sizeof (ndis_handler [0]), #ifdef CONFIG_WEXT_PRIV .num_private = sizeof (priv_handler) / sizeof (priv_handler [0]), .num_private_args = sizeof (priv_args) / sizeof (priv_args [0  ]), #endif .standard = (iw_handler *) ndis_handler, #ifdef CONFIG_WEXT_PRIV .private = (iw_handler *) priv_handler, .private_args = (struct iw_priv_args *) priv_args, #endif .get_wireless_stats = get_iw_stats,};   

Однако это еще не все. Затем вы также получите сообщение об ошибке wrapndis.c, поэтому вам нужно найти строки со следующим оператором if (примерно в строке 1820) и обернуть это в # ifdef / # endif. #ifdef CONFIG_WEXT_PRIV, если (wnd-> physical_medium == NdisPhysicalMediumWirelessLan) {net_dev-> wireless_handlers = & amp; ndis_handler_def; } #endif Должен добавить, что я пытаюсь скомпилировать это сам и не проверял ndiswrapper, выполнив это так YMMV.

Вышеупомянутое для wrapndis неверно, кажется, что CONFIG_WIRELESS_EXT не установлен в (моем) ядре конфигурации. Если бы это было тогда, я не получил бы эту ошибку.

0
ответ дан 4 August 2018 в 19:52

Учитывая ваш последний вопрос о вашей задней подсветке , вам не нужно компилировать ядро ​​для использования патча. Вам просто нужно добавить PPA в исходные коды вашей системы.

htorque объяснил, как действовать в своем комментарии :

Просто добавьте PPA в свою систему. Запустите терминал и запустите sudo apt-add-repository ppa: kamalmostafa / linux-kamal-mjgbacklight , затем sudo apt-get update и, наконец, запустите обновление с помощью sudo apt-get upgrade . Как вы можете прочитать в приведенной выше ссылке на PPA, вам может потребоваться добавить acpi_backlight = vendor в строку linux записи grub для нового ядра (см. Комментарии в этот ответ о том, как добавлять параметры в ядро ​​во время загрузки).

Весь процесс уже подробно описан в нижней части на странице, которую вы связали . [ ! d12]

2
ответ дан 4 August 2018 в 19:52

Поля num_private и num_private_args определяются только при определении CONFIG_WEXT_PRIV во время компиляции ядра, поэтому вам нужно добавить строки # ifdef / # endif здесь: iw_ndis.c:

  const struct iw_handler_def ndis_handler_def  = {.num_standard = sizeof (ndis_handler) / sizeof (ndis_handler [0]), #ifdef CONFIG_WEXT_PRIV .num_private = sizeof (priv_handler) / sizeof (priv_handler [0]), .num_private_args = sizeof (priv_args) / sizeof (priv_args [0  ]), #endif .standard = (iw_handler *) ndis_handler, #ifdef CONFIG_WEXT_PRIV .private = (iw_handler *) priv_handler, .private_args = (struct iw_priv_args *) priv_args, #endif .get_wireless_stats = get_iw_stats,};   

Однако это еще не все. Затем вы также получите сообщение об ошибке wrapndis.c, поэтому вам нужно найти строки со следующим оператором if (примерно в строке 1820) и обернуть это в # ifdef / # endif. #ifdef CONFIG_WEXT_PRIV, если (wnd-> physical_medium == NdisPhysicalMediumWirelessLan) {net_dev-> wireless_handlers = & amp; ndis_handler_def; } #endif Должен добавить, что я пытаюсь скомпилировать это сам и не проверял ndiswrapper, выполнив это так YMMV.

Вышеупомянутое для wrapndis неверно, кажется, что CONFIG_WIRELESS_EXT не установлен в (моем) ядре конфигурации. Если бы это было тогда, я не получил бы эту ошибку.

0
ответ дан 6 August 2018 в 03:55

Учитывая ваш последний вопрос о вашей задней подсветке , вам не нужно компилировать ядро ​​для использования патча. Вам просто нужно добавить PPA в исходные коды вашей системы.

htorque объяснил, как действовать в своем комментарии :

Просто добавьте PPA в свою систему. Запустите терминал и запустите sudo apt-add-repository ppa: kamalmostafa / linux-kamal-mjgbacklight , затем sudo apt-get update и, наконец, запустите обновление с помощью sudo apt-get upgrade . Как вы можете прочитать в приведенной выше ссылке на PPA, вам может потребоваться добавить acpi_backlight = vendor в строку linux записи grub для нового ядра (см. Комментарии в этот ответ о том, как добавлять параметры в ядро ​​во время загрузки).

Весь процесс уже подробно описан в нижней части на странице, которую вы связали . [ ! d12]

2
ответ дан 6 August 2018 в 03:55

Поля num_private и num_private_args определяются только при определении CONFIG_WEXT_PRIV во время компиляции ядра, поэтому вам нужно добавить строки # ifdef / # endif здесь: iw_ndis.c:

  const struct iw_handler_def ndis_handler_def  = {.num_standard = sizeof (ndis_handler) / sizeof (ndis_handler [0]), #ifdef CONFIG_WEXT_PRIV .num_private = sizeof (priv_handler) / sizeof (priv_handler [0]), .num_private_args = sizeof (priv_args) / sizeof (priv_args [0  ]), #endif .standard = (iw_handler *) ndis_handler, #ifdef CONFIG_WEXT_PRIV .private = (iw_handler *) priv_handler, .private_args = (struct iw_priv_args *) priv_args, #endif .get_wireless_stats = get_iw_stats,};   

Однако это еще не все. Затем вы также получите сообщение об ошибке wrapndis.c, поэтому вам нужно найти строки со следующим оператором if (примерно в строке 1820) и обернуть это в # ifdef / # endif. #ifdef CONFIG_WEXT_PRIV, если (wnd-> physical_medium == NdisPhysicalMediumWirelessLan) {net_dev-> wireless_handlers = & amp; ndis_handler_def; } #endif Должен добавить, что я пытаюсь скомпилировать это сам и не проверял ndiswrapper, выполнив это так YMMV.

Вышеупомянутое для wrapndis неверно, кажется, что CONFIG_WIRELESS_EXT не установлен в (моем) ядре конфигурации. Если бы это было тогда, я не получил бы эту ошибку.

0
ответ дан 7 August 2018 в 21:52

Учитывая ваш последний вопрос о вашей задней подсветке , вам не нужно компилировать ядро ​​для использования патча. Вам просто нужно добавить PPA в исходные коды вашей системы.

htorque объяснил, как действовать в своем комментарии :

Просто добавьте PPA в свою систему. Запустите терминал и запустите sudo apt-add-repository ppa: kamalmostafa / linux-kamal-mjgbacklight , затем sudo apt-get update и, наконец, запустите обновление с помощью sudo apt-get upgrade . Как вы можете прочитать в приведенной выше ссылке на PPA, вам может потребоваться добавить acpi_backlight = vendor в строку linux записи grub для нового ядра (см. Комментарии в этот ответ о том, как добавлять параметры в ядро ​​во время загрузки).

Весь процесс уже подробно описан в нижней части на странице, которую вы связали . [ ! d12]

2
ответ дан 7 August 2018 в 21:52

Поля num_private и num_private_args определяются только при определении CONFIG_WEXT_PRIV во время компиляции ядра, поэтому вам нужно добавить строки # ifdef / # endif здесь: iw_ndis.c:

  const struct iw_handler_def ndis_handler_def  = {.num_standard = sizeof (ndis_handler) / sizeof (ndis_handler [0]), #ifdef CONFIG_WEXT_PRIV .num_private = sizeof (priv_handler) / sizeof (priv_handler [0]), .num_private_args = sizeof (priv_args) / sizeof (priv_args [0  ]), #endif .standard = (iw_handler *) ndis_handler, #ifdef CONFIG_WEXT_PRIV .private = (iw_handler *) priv_handler, .private_args = (struct iw_priv_args *) priv_args, #endif .get_wireless_stats = get_iw_stats,};   

Однако это еще не все. Затем вы также получите сообщение об ошибке wrapndis.c, поэтому вам нужно найти строки со следующим оператором if (примерно в строке 1820) и обернуть это в # ifdef / # endif. #ifdef CONFIG_WEXT_PRIV, если (wnd-> physical_medium == NdisPhysicalMediumWirelessLan) {net_dev-> wireless_handlers = & amp; ndis_handler_def; } #endif Должен добавить, что я пытаюсь скомпилировать это сам и не проверял ndiswrapper, выполнив это так YMMV.

Вышеупомянутое для wrapndis неверно, кажется, что CONFIG_WIRELESS_EXT не установлен в (моем) ядре конфигурации. Если бы это было тогда, я не получил бы эту ошибку.

0
ответ дан 10 August 2018 в 10:07

Учитывая ваш последний вопрос о вашей задней подсветке , вам не нужно компилировать ядро ​​для использования патча. Вам просто нужно добавить PPA в исходные коды вашей системы.

htorque объяснил, как действовать в своем комментарии :

Просто добавьте PPA в свою систему. Запустите терминал и запустите sudo apt-add-repository ppa: kamalmostafa / linux-kamal-mjgbacklight , затем sudo apt-get update и, наконец, запустите обновление с помощью sudo apt-get upgrade . Как вы можете прочитать в приведенной выше ссылке на PPA, вам может потребоваться добавить acpi_backlight = vendor в строку linux записи grub для нового ядра (см. Комментарии в этот ответ о том, как добавлять параметры в ядро ​​во время загрузки).

Весь процесс уже подробно описан в нижней части на странице, которую вы связали . [ ! d12]

2
ответ дан 10 August 2018 в 10:07

Учитывая ваш последний вопрос о вашей задней подсветке , вам не нужно компилировать ядро ​​для использования патча. Вам просто нужно добавить PPA в исходные коды вашей системы.

htorque объяснил, как действовать в своем комментарии :

Просто добавьте PPA в свою систему. Запустите терминал и запустите sudo apt-add-repository ppa: kamalmostafa / linux-kamal-mjgbacklight , затем sudo apt-get update и, наконец, запустите обновление с помощью sudo apt-get upgrade . Как вы можете прочитать в приведенной выше ссылке на PPA, вам может потребоваться добавить acpi_backlight = vendor в строку linux записи grub для нового ядра (см. Комментарии в этот ответ о том, как добавлять параметры в ядро ​​во время загрузки).

Весь процесс уже подробно описан в нижней части на странице, которую вы связали . [ ! d12]

2
ответ дан 13 August 2018 в 16:27

Поля num_private и num_private_args определяются только при определении CONFIG_WEXT_PRIV во время компиляции ядра, поэтому вам нужно добавить строки # ifdef / # endif здесь: iw_ndis.c:

  const struct iw_handler_def ndis_handler_def  = {.num_standard = sizeof (ndis_handler) / sizeof (ndis_handler [0]), #ifdef CONFIG_WEXT_PRIV .num_private = sizeof (priv_handler) / sizeof (priv_handler [0]), .num_private_args = sizeof (priv_args) / sizeof (priv_args [0  ]), #endif .standard = (iw_handler *) ndis_handler, #ifdef CONFIG_WEXT_PRIV .private = (iw_handler *) priv_handler, .private_args = (struct iw_priv_args *) priv_args, #endif .get_wireless_stats = get_iw_stats,};   

Однако это еще не все. Затем вы также получите сообщение об ошибке wrapndis.c, поэтому вам нужно найти строки со следующим оператором if (примерно в строке 1820) и обернуть это в # ifdef / # endif. #ifdef CONFIG_WEXT_PRIV, если (wnd-> physical_medium == NdisPhysicalMediumWirelessLan) {net_dev-> wireless_handlers = & amp; ndis_handler_def; } #endif Должен добавить, что я пытаюсь скомпилировать это сам и не проверял ndiswrapper, выполнив это так YMMV.

Вышеупомянутое для wrapndis неверно, кажется, что CONFIG_WIRELESS_EXT не установлен в (моем) ядре конфигурации. Если бы это было тогда, я не получил бы эту ошибку.

0
ответ дан 13 August 2018 в 16:27

Другие вопросы по тегам:

Похожие вопросы: